{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "4e68b9ea",
   "metadata": {},
   "source": [
    "# Project #2\n",
    "## Understand root & equation systems"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fd32345d",
   "metadata": {},
   "source": [
    "### 马梓荃 电子科学与技术 20201060339"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "468a7708",
   "metadata": {},
   "source": [
    "### 979324173@qq.com"
   ]
  },
  {
   "attachments": {
    "9bb89e2232f181fd6b0e9816cf2f536f.jpg": {
     "image/jpeg": "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a2t4XzFA46j0x6V7gum2KNuWytlb1ESg/wAqtBQAAAAB046UAc1428JW3jLw7Lps+Ec/NFIRnY1eGeHNa8V/CLUZ9N1DSpLqxY5ZYssM+oNfTWKglghmTZNDHIv911BH60AeFa78ZNW16wfT/D2gXsc8w2+Y6H5T7V0nwj+HE/he2l1bV0A1S6Bwmc+Wh6j6mvTYbG0tzmC1giOc5SML/KrAUDOAOTk8UAee/GTR7vWPh3dQ2UbTTRTRzlByWVeuK8z+E3jjT/BekX9rqtrqCySz7wIbctX0eVBGCAe3SqradYudzWdux9TEp/pQBDo2r2+uaTb6la+aIJ13p5q7GA9xWhk+p/SuR8XeGtY1qO3TRNdfSBCMOIo85HoK5X/hXHjj/of7r/vwKAPWMn1P6UZPqf0ryf8A4Vx44/6H+6/78CrGm+A/GNrqME9x42uLi3jfMsDQD5h6ZoAzvj5fahH4cs9OsopnjuX/AHzRKT8o6A47Vxvw7+IOmeCNBNrL4f1CS9lk3TyrH94fXFfR0kEMyhZIkdR0DKCKjGnWQGBZ24A7CJf8KAPKv+F86fnP/CO6tn/rn/8AWrpvBfxEg8aXtzbQaZeWogjEheZSAxz0Fdf/AGZY/wDPnb/9+l/wqSK3ggB8mCOPPXYgGfyoAnooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAzNY0bTtbsvsuqWkVxb5ztl6ZqjpPg3w7oc32jTtItYJunmImW/PrXQ0mAaAFxRRRQAUUUUAFFFFABRRRQAUUUUAGKTavoPypaKAE2r6D8qNoxjAx6YpaKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK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DPM21B9kMe3/AIFiuw8KeCdH8HRXMelRMouH3OXOT9KAOlooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiim0AOptRSXMMS/PKqfU1ymteNrayTZbMHkoA6t7mCH/WSgfWsa/wDFem2LbWkDH2ry/UfFl7dTYZmiHoCTWLNcSTnMhJPqTQB6LqPj3yzuteR7msr/AIWLft0jrjSSRg8igcdKB2O1tviFeF/3iD8a6jS/GdndDbM4U15FTAzLJ8rEfQ0CPomC4jnj3RuHHtUleT+FPF0tpMlrMcqe5NepwXEdzGrxuCKAJ6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKbQA6im0bhQA6im0UAOoptOoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPKvCujala/GvxPqdxaSxWdxb7IZiOHO9D/SvTZIY5o2jdFZGBBVhkHPXNTFVPUA/hTsUAfLHjj4SeILDxHONE0ye706aTfGIcHH1/M19ALoUOseBbXRdSh+WSxjicd0bZjP4V09JtGc4GaAPnzTNC+IPwv1GcaJp39s6bKcqiguT74XGKueItL+I/xD0Kb7bZRaVZRoJEsw3z3Ldga94oxQB518NfD+p6B8N30zULfyrs+b8oOfvdK4/wCDvhHXdB8Zaveapps1pBNE6xtJjn5/avdMDOcUBQOgFAHm3xm0XUtf8EpaaXZyXc/2hH2RYPH41r/DOwvNI8A6ZYahBJb3USOHSTAx859PrXZYHoKTaoOdoz64oA8v/sDVf+F+f219il/s77Jt+054z5e3p9an+JPw1/4SueLV9Km+y61b42SdN2OnPtXpWB6CkAAGAAAKAPHLbxx8StLtvsd/4NlvbiP5RdRBtrH35pNI8C+J/Fniy28SeNDFBFb/AOosUOcV7JtHoPWlwB2oA5zxpa6leeEdSg0d2TUHhxC6MVIPqCOlc18KtI8U6Vp18viaSZ5WmzF5sxkIHoMnpXpGAKMD0oAge2glYNJDG7AYBZQTil+x23/PvD/3wKnooAqta2iKzPBEFXnOwVQ/tDQ42/4+tPWRDnh0HPrWrIiyxlGAw3Y1xknwn8FySmR9GhyeuCeaAPFUkS8/aMEtu3mwNfoRJHyNuwc/oK+kLnS7S8ntp7iBZHtn3xbgDtb1+vvWTo3gXw3oFyLrTdLt4rgdJNoLD8cZrptoznAoA+ZfHhJ/aK0/k/8AH9Zf+hpX0fNp1lckGezt5SOheJWx+YrnL/wB4e1HxHDr9zZmTUI5FkEpc4yvIOPbAx6V19AHzz+0TZWtn/YX2W2hg3edu8qMLn7nXFereCNJ02TwTo0j6faNI1shLNCpJP1xVvxP4K0Pxf5H9s2huPIz5f7xkxnr0+grY0+xh0ywhsrVdlvCmyME5xQBDcS2ej6ZJP5Kx2sKl2WGMfjhRXBt8avBUjbnS/Y4xk2LH+lellFbOVByMHI6im/Zrf8A54Rf98CgDwn4g/EPwt4m8HXul6TBP9ql2bS1my4+f6VQ+Fnjvw74T8LvYa3Bci4aZ3GLVnGPTpX0IbW3JyYIifdBQLS2HS3iH/ABQB5oPjN4GDBlivQwOQRYHIPr0rvtD1i117R7fU7LzBbzLuTzU2sPqKvfZrf/AJ4Rf98CnKiKoVVUBeAAOlAElFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFNooAdRTahnuorZN8sgAoAeX2ncxwKxdY8R2+l2+VkVpPSud8R+NkhLwWxz/tA155cXlzfy+bPKxX0LE0AbGr+LbvUHdRlV9QawGLvN5gYMfU03+LHamDkbV4PtQAfeOW4NSdajXnrz9akoHYjyfWjJ9aKKdirElRvxUlR7Se9ImxJGwB3gYf2r0nwLrrTR/ZpSC3vzXm2ADnHNaWg376ff+YpGfSgR7xTqqWM/2mxilyTuTOat0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABTaGYIu41h634jtNLg5lUv7GgDWnuobdd00oUfWuf1PxhZWf+qlV6871rxVd6g+Fdlj9jWAzF/vEt9eaAPQJPiSd/yIDSR/EeT+OICvPgoHQAfhTCGPUk0Dseo2Pj6KWbEpwPrXXWGq2l9GrRzKW9M14IBg5HBrS0nWrnSbhJA5ZPQnigR7xTq5/w/wCIodXt8s6iT0roKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooqEuNwUttZhxkjP5UATUUUzdzt74oAfRRRQAUUVEWCnG7k9ASOfpQBLRRRQAUUUUAFFFFABRRWXret2Hh7S5NQ1K58i3j4L4z+lAGpRWPoeuWPiLSo9S02czWsm4K5G0/lWxQAYopjMFBLHA7knGKXn0oAdRSc+v6VHlyOuPYjJ/Q0ASYGc45paKp3V9bWURe6uYoFx952A/SgC2AB0FJgDsPWq1jqVpqdmt1Z3CSwN0dTxWbrfivRPDs1vDq2oR2rznbGHB+Y/hQBu0UVTn1Kzt7qG1luYo55v9XGzYL/SgC5RWLc+JtJstag0e5vo47+4H7qFs5aptS13S9IkhTUL6G2eZv3YkbGaANSio0kWRA6sGRhkEdxVfUdQtdKspLy9nWC3jGXdu1AFyiszStZsNc0+O/025S4tnyFdSecVp0AFFFUdS1O00ixkvb65WC2iGXd+1AF6is/TdWstZs1u9Puo7i3bo6E81U1nxRovh94U1bUorV5v9X5mefyoA26KYDuTin0AFFQzTxwwvLI21EXcx9KytK8V6HrcVxJp2q21wlv/AK10bAT65oA26KhilSeMSRSK6H7rq2QamoAKKKKACiiigAoptHXrxQAUfd600tsXc7ACua8Q+K7fTYnSOUPJ/smgDQ1fXrXTI/mlXf6V5p4g8VXF9NsgchPY1iavqc+qXPmtISvoTVFuOnH0oAVmaU5kY59SacQzR4C8U089aaGkHR/1oAUMDHg8N60AAHIHNBAPUUtA7EfSjJ9aKKdirBRRRVWGGT60ZPrRRU2FYkpI/kkz39aWo8nenNIg9l8Gal9u0xUDE7Peuprzj4c3Uab4M816OnK0AOooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiim0AOqN22DLsAvrTZp1gi3yMBXAeK/GGxfs1kwZvY0AaHinxfHp6eRbuGf1BrzO/vpb5/Mdsn0JzVW7uJLiXzZyWb65qKgB5YFflAJ/u9qWox8pyOD7VJQBHk+tGT60UU7FklGMjB6UUUibGhpepTaTdpJG52egPFezaHqyapZI6yAuOvPWvCcD0rpvB+uNp92YXZtjPxzQI9kp1RxyJJGrochulOU0AOooooAKKKKACiiigAooooAKKKKACiiigAr5u+IfjDUdN+K/wBqsbi5jstOmhgnAY7C5LMQR0OQT/3yPSvoqWVIYpJJGIRV3E56V8/xeHZPFfw48Ya20ImvLu/M9uM4A8n5Sf8AvlnNAHvdvexXNhHeK37p4/NzntivmgePNQX4wDUXvpotPe+EflMxKFF+U47YzXfeF/GefghNevIZLuyhktGBPLMfu4/MVxHxA8Mt4f8Ahz4QuBADPGWe5kA6s534J79/yoA+mqxL7xVoWnS+RdataxTDja0mSPriuT8a+NLjSfhVBr1oxjur62iETZ+60iZJ+o9axvhn8ONHfwzb6zrlsuoajqUSzs1ySdqt0696APUI9b0yaeKGPUbVpJfuIsoJb6VxXxD0fUNU1nw/JY67BpiQysZEllKecN6cD17/AJ153d+HbHw1+0BoVjpyutqw81YWbIQ7H4HoOK2fjuP+Km8DjsbqTPv88P8AiaAPa5JUihMkrqiBfmdmwBWX/wAJToX2r7N/a1p53p5g/nXlvxg12/v/ABBo3gzTrl4Hvdr3DIxGVY8dP91q6iT4PeEDov8AZq6aofy8faA583PrjpQB6AkiyoHRlZTyCrZBqpHq+nzQPPFfQPFGdruJBhT715R8HNf1CPU9Y8IandNO2mOwickkkK2Dya4D4S+GX8W3moWF3LKukRETXEMbFTK/90kdR7UAfS0WrWE9g9/DdJJaorM0iNkAL1qDRfEek+IoJJtIv4ruONtrmLsfxqrY+F9K07QJdFsbUQWUkZRoo3JPPXk+veo/CXgzSvBdlNbaUJRHM+9vMbJoA5T4s+ONa8Hf2ONH+z5vHdG8+NmwRtx0PvXMfE0ePf8AhA7iTWrjRn09jHuFsjhx+dP/AGhlYt4YVCFLTyY/8cqL4neHvFFh4FmudR8Xy6naB0DW5toowf8AgQGaALHw0j8et4Gsn0W50RNP+fyvtSOX+9jnFdF8K/iBqvjGbUrXVY7fzbRsB4OAa5r4beHPFV94Hsp9K8YPptqd+LdbWKTH/AiKqfs+JImreIFkbcRhSR6560Ae16vpkWsaTcafNLLCky7TJC5VgfYiuI/4U1oX/QW8Q/8Agcf/AIitzxD49sfDupiyutO1GVtu7zIICy1lN8WtKCsf7I1vj/pzNAHm/wARNJ8NeELZbSx1jXbzWpV+SEXrEJ/tsAv6VsfCDwV4otr6LXdavrmG2ZP3drLIWMn1BPFcX4F17SbTx/rOqaxYXN8Wld4MReYyHc3LA+wAr2b/AIWzouSf7N1rJ7/Yv/r0AdD4otdVvtEkh0bUxp16WXy7lgCv0wa+eNe8N6lL8UrDwvr2vXF/FcMhklzt2qc/w5xXu91b6Z468OQXlw9/a2ilpeHML4HqR0r5iuL7RZPiC0zXF8dGSdgJfMZpRGOnPXigD6F1XwbfaD4COl+DtSuYZreXzk3vvMn+x9PavHvGHizVfE0vhaXVtPlsrm3uWjkkwQJBvTkA/U16Vqfhu5HhSx1vwJrN5M9qzTpFLO0nnq3VTk8EfpXDfEHV9R1o+CbzU9N+w3Lyf6roG+dOg/hoA+htZ1OHRNFvNSuCxhtomlcKece1eD+L/ESfEG50nV/Dmm6tDcWMuPtSQo2P/H6931vS49a0W70xpGjFxEYyy9QK47RvBet+CvDqab4YvbSWRp98jajG5GPbYRQBxPi6ebxTrOj6omleILG40/708dgrFvp89ZXiu41LxZ42sL3VPD2tDRbNc+WIR5p/DpXeeI/Enjfwtpr3uq6j4ZiiX7g+zyl3+g8ysXwH8RvHHjPWI4ZNJ08aZ0nmSJxj/dJegDuPBHjzSfFhvLbTba6g/s8KjrOgXGd3p/uGsX463j23w3nRHIM88a4z1HcVseCfh/beDL7VrmG7e5/tKQMwKgbcbj/7NWR8XPCWveMdO0+y0byGjjkZ5hNLszjp0oA57wRYfEzTfBmmJov/AAj40+SETQrdeYHw53cn6Gug/wCLz+vhb/yJRpj/ABJ0nTLSxg0HRTDaRRW6k3bZIQYJ/Knap4l+Iuj6Vcajd6JopgtYmlm23TZwvXFAG94V/wCE6F5OPFJ0j7Ps/dGw3k7vfdXI/FrxnpTeFde0BPtP28BFwYTszvT+L8a6r4d+L5PG/ho6pNax27eaybVbPIrE+MGp6TD4B1ezlntftswQJESN4O8cnH0oA574WeMDbeA7XStHsJb/AFZC7GIgqmP96uU+Luq63fX+kNq+iLp0kY/chLjzN31ylb/ww8apb+CTpOl2sX9qQRvK014pWAj+7vXnNVtd0Txj8VbbTtUiGhGC2ZxFJb3DEN/vA9OhoA9Fi8U+OvlX/hB4tvr9v/8AsK6+91iw00J/aF7Bbb/ub2xmvK/B/wAUfEWv+Nh4dudMsjHCzrPcWhcqAO45r0zWvDWkeIFi/tWxiuvK+75uRigDM1nxNoUuhajGurWbObaRVBl6nZmvEvgydLvLDxRpusXiQ294I1LM+0knfnFWPjFbeFtCa30bRdIgi1CQ75pYwxKJ/dwD1rzjwldWVlrMV1q2nre6Ysix3Eb8BS2cHPr8p/M0Ae6/Dt7/AMM6vqGnX/iKzuNDg/492ebczfTNeuxTRzRrJG4dHGVZTwR61xNj8OvAOp2UV3aaHaSwOuUZZHIH05rsre1gs7WK3hQRwxLtVQO3pQBaooooAKKKbQAVFLKIhmVgq+tJc3UVpFvmdVrzXxP40Nzvt7QkD1zQBoeKfGMUMf2e2bLeoNecTXElzL5sxbd6E1DM7SSb3Ys/uc04/vfvcUAIgGMYGKd1o6UUDsR5PrRgelFFOw+UMn1oyfWiinyjsFFFFOwwooopgFFFFKwElRvxipKjf/V5qDM6fwZO9vqypyN9ez9K8Q8NyY1uDmvb1oAdRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANqvPOLeNpJWCovU1LLIkMbNIcKO9eaeLfFjzSSWVuRtPXBoAPFPjPfI9tajI9RXCSM6TGTduLdCeajLuW3HJPrSfdxnnHTNAD3C/3qMD0o2qRnPzelLQOxHRk+tFFOw+UKKKKqw7Bk+tGT60UVNgsSURSPDICmcjkGimZITOTmkQez+ENUGp6NGpJ8xPfmujQmvKPAWqGDUFtlyFf1r1lAKAH0UUUAFFFFABRRRQAUUUUAFFFFABRRRQByvj/UV0jwJrV6WI22rRgg4IZhtB+uWFUvAOhx2fw906yuYV3TQFplKjksMMT65B59a6DWNGsdf02Ww1CPzrSXG9Nxw2DkZHfkD8q0IYEhhSFMBEGMe3pQB8wabpWp2vji58AmN/sM2pRTuMcBF6ke3zD8hXr/AMZtJe/+Gd4tuFVbR1uMY4Cp1Fdt/ZOn/wBpHUfsdt9tK7fP8pfMx6bsZxwPyp2p6da6zplxp97H5lvOhSVAcZB6igDwpLa98Xfs5wxxZmurBjtReSUjfGPrtruPhR4u07VfBFlaPPFDd6fEkEscjBSdg6811vhvwppXhawks9JhaOCRy7I0hfr161h6t8JvB2rXrXtxpKxytkt5EhiU565C0Aea6nrNlrv7Q2iTadIs0CAKJQTtcqj5xWh8dyf+Eq8Fc9J3/wDQ4a9Ot/A3hy0vLK7tdJt4JrPJgaJQuM9eg9zXlHxbvrbxD408I2ek3Ed/dW87+dHbnzGT54+uBj+E/lQBY+LlrcaH478P+MFjZrWAJHJtXOzBOM/99V6pJ4y0SPQDrX9pW5svL3+ZvGPpjrWnf6dZalaNa3tvFPA+C0cqBlOOmQa4tfgx4FW9+0f2Qzc58tpZCn5ZxQBx3wc0+81XxZ4h8XyQMlrevIYAwxlnk3flim/s68w6/nn9+h5r2m0sbXT7NbS1gSG3QbVjiUKoHoAKxvDHgnRPCC3X9jW8sX2k5lzKX59s0Abd9dQ2djPdTE+TDG0r/RRk/wAqyfC/i7R/F9rNc6RM0qRtscsm2tW8toby0ltplzFKpjcY6g9R+NZ3h/wxpHhm0lttItlt4XOSFYtk+vNAGN45+Hln46+w/ar2e2NmxZDEM9fr9B+VcF8VPC+p6V4FuJ7nxTfX8IkTNvOEXP5V7kQD1Gaw/FXh238U+H7jSLtykc3O4dsUAeYfDLwvrGo+ArG4tfFOoWMLb8W8CIwH4muw8C/Di18CTX00WoTXTXZyTIu3H5Vk6P4B8ZeHtNTTdJ8XQx2UXMUclmpYfU1p2nh/x/HdxNc+MLaWEOrSIlkq5HcCgDvdq5zgZxj8KbN/qX/3akrj7218cy3E32W/0ZbZvubonJH1oA8t+CZJ+Jniok5PmP8A+jHr6Crzf4d/Dy48I6pqup319Bc3V++R9nXAAyT3+tekUAea/F2fXJNBs9H0WGR5tTuPIkkTI2J74ryNfBtp4d+Lui+HZ9tzE8Km4yow+UfP16CvqIorEEqDg5GR0NeWa74F1jUPjJp3iiBYv7OgiRSzN82Qjg8fiKACw8B+J/DE09j4V1W3tdMnJlL3SeZIrHqAp4rzr4oaN4itPEWg2+t6+NRluH/dtHAIRH8/t07flX02AB0ryv4neB9X8U69ol5p0UUkFq377c4B69qAOh03wnqPh/R7tNM166vr6f7s2pu0yp9ADxVf7F8SMAf2jonH/Tu1d3gE5wKpX8l1HYzNZxCW6VN0UbNgFvQmgD5x+MEHiI69okOu3FnPJIP3QgjIH3+9esWGn/ECz0+CG1uNCjiVOEjt2UD8BXN+K/A3i3x14h0a81G2sbG3smxJ5Uxcn5817HFF5caKP4RigDmNIi8Xi4kbVZ9KkhWMhRbxPkyfj2qgX+JH8MehH6o3/wAXXdYBOcDNLQBwn2j4k/8APv4f/J//AIus7X38Zy+EfEH9sQaOLI6bdE/Z/MLD92/qa7zUpb1LCZtPjjlvAmY4pWKgn3IrhdcHj/W9EvtNfRNKRbu3ltyRdNwHGAf50AUv2fv+SeH/AK+nrA+KHwx0+y0nxF4sa6ne5YpJDCFAVMuuR+pr0D4a+ELjwZ4VXTLqUSTtIZGKHgfSqHxF0/xX4g0290LStLtZLG6jVTcSz4YHOen4CgCP4LWtv/wrGzKwRAyl/MIQfOc9/WvLvFGp6h8J/EGraVo11DJp+pIXjiznyD6Y7GvSovDPjLw74G0rQvDk1mtyD/pVy7Y8r/dHem6J8G9KhFxd+JZjrOpXK/vZpuin1HofegCl8DPD+nWPhw6otxBPqF780gDAtGvoRXSfET4h2ngnSwVHm6jcLm3hx19zXn8vwa8Q+H/EkN14R1qS3tJZf3mJCjRr6Ng/MPavTtU8DaXruvabqupobmWxh2ojcq59WB60AeW+D/At5qFlqvjXxNG0l/NbSzW0UnYheGOe9Yvwe8NW3inQfFmlXQGHMGxsfdb5+R6GvobVrdrjQ7+3hUbnt5I0Uj1XFea/BfwXrnhB9cOsWywC5MRj2vuzt35/9CH5UAcJ4S8b6t8MPEM3hnxDHI+mLJtG7J8oeqnutfRdhf22pWMV7ZzCaCVd8bA4yKwvFPgPQvGAtjqtqGaA4V0O1tv93I7e1btlZW+n2cNpaRJDbwjaiIoVVHoAOlAF2iimucLQAVRvr+DT4/MllAPoTTdX1OLTLN5mYZ9N1eRa/wCJJ9UkfG4J7GgC94p8VzX0jwwt8nsa5MqQcsST6mmdTk9aVSSdxJI96AHYBOcc+tMyfWjJ9aKdh2DJ9aMn1oop8pVgooop2GFFFFMAooooAKKKKACiiigCSjAxjFFFZmZf0SfyNTjc9q9zsJ/PtEk614Davsuq9y8Pnfolsc8lOT60Aa1FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFNoAdUUjCNGdmIH1p5YAfNxXHeLfEy2MHlwsGf0oAz/GHi0x2z21qwLexrzppWyZZRvZuh70s0z3UpkbPzdKjD7QIj0HQ0ARZPrTyAeopiKfWpKB2I++e9GT60UU7FWCiiiqsMKKKKYBRRRSsBJSYHpS1Hk+tQZl6wvZNPuo5VIyOhFe5aXd/arGGTJJKZJ9a8C2M33iBXqngDUZbqyeGZuU+5k9aAO5optFADqKKKACiiigAooooAKKKKACiiigApMD0paKACkwPQUtFABiiiigAqimm2UUzTR2sSSscs6oAxPuavUUAFJgYxgY9KWigApMA0tFACAAdBS0UUAFIQCMEZpaKAGkAjBAING0ccDjpTqKACkwOeBz1paKAEwB0FLRRQAU3au7dtGfXFOooAKTA9BS0UAFN2j0HrTqKAEwPQUtN3DdtzzTqACiiigBNoxjAx6UbR6ClooATAPak2r/AHR+VOooATAJyQM0bQDnApaKADFFFFACEA9QKTYox8o46cU6igAxRRTaACsnV9dtdKgdpny3oKj13XoNKg3eYN3pmvJNf1ybVZ8gsF9M8UAN1zXbvWbzPmMtt/dDGsvc33MfJ60wc9eKk3Ns24+X1oAjo6DHaiinYdgoooqrFWCiiimMKKKKACiiigAooooAKKKKACiiigAyfWpKjqSszMfCB9oj4617l4b/AOQBa/7leGw/6+OvcvDf/IAtf9ygDXooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigBtG4UzJ9ayNd1qPSrRzuXzPSgCp4n8Qx6bbOsbgy15Ff3k19dPM75Huak1PU5dWu3d3YD61TwMYxxQAZPHPTpQQD1FJgf3qWgdiPJHejJ9aKKdirBRRRVWGFFFFMAooooAKKKKAJKTA9KWo3JHesyLD/vfe4rq/BmoSQamkORtrlDyvNXtMuzZ3PmAfjQI96Qk96fWbpd21xpkMxySepPetKgB1FFFABRRRQAUUUUAFFFFABRRRQBm6rrFjounyX+oXKwW0Qyzsev09a85j+MVzqtzJD4a8K32qxxnBn8xUVvpxXGfGrVrnXfHGneE7WVkjBSNlycFnIxkV7h4c0K18OaJa6baQLGkaYJAG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d+5qlTY0/d4fgU1CT3oADz1ooop2HYKKKKqxVgooopjCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAH4HpTMn93z1qSkwOOOlZmZInE6V7l4b/5AFr/ALleH2qeddJivddDj8vSLdOmEoA0qKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooptABQWCruY4ornPE2vLplm6gjzPSgDnfGniUZ+yQON3sa862knfJ9/3qS9me6u/tLZ3e9RzEs29jigCMcR8USEsMA8U/A9KMD0oHYWo6Mn1op2KsFFFFVYYUUUUwCiiigAooooAKKKKACiiigAooooAKKKKAJKTA9KWisyLCOFH8VdX4G1EWl8Ic5Z65HaS9avh4rBrkDbuKBHvKsHXcKdVe2YNbIy8g1YoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooptABVHUdRh0+2d5ZAG9KlvryOxt3lkcAV5J4o8SNqlx5Ub4X1BoAreJNen1C5dFPyfWsAqHAGBgdPakyWk+YkU7/V9OaAGO7yDaRg0dKMknOeaKdh2CiiiqsVYKKKKYwooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAkpOxXu3SlpP4x7dKzMy/oEJkvkhPLV7pZp5FpGp7V4p4YK/22nBr29GDRZYYoAmoqNnX++v8A31VO41izt/vzKPxoA0KKxG8T6YnW5X86yb/xzawf6hg1AHY02vPH+I5D/wCrFQS/EeQJxHigD0jzFH3mxSNMi9WH/fVeTXHju6l+6SPoay5/FOpt0uD+ZoA9s+0R/wB9f++qPtEf99f++q8O/wCEi1H/AJ+W/M0f8JFqP/Py35mgD3H7RH/fX/vqj7RD/wA9U/76rwr/AISTU/8An4b8zQPEF6U5uXH4mgD2yXV7OI4Myf8AfVVW8R6enWdfzrxJtSnlOTOT9ahN3M/8b/8AfRoA9x/4SnTf+e6/nTP+Es0z/nsPzrxLzm/vH86TzJPU/nQB7W/i7TR/y3X86X/hMNL/AOew/OvE+T/Cfzoy3of++qAPbP8AhMNL/wCew/Ok/wCEw0z/AJ6j868Uy3of++qb5p/vH86APbf+Ew0z/nqPzo/4THSv+ew/OvEvOf3p3P8AdP50Ae2f8Jhpf/PYfnR/wmGl/wDPYfnXimT6mmeafU0Ae3f8Jhpf/PYfnR/wmGl/89h+deI+afU0m5v7x/OgD3H/AIS7S/8AnsPzo/4S7S/+ew/OvEtze/8A31Rub+8fzoA9vXxNp79J1/Orseq2svSRP++q8E890+67H8anj1K8X7sjD6MaAPeJr2JU+V0P/Aq8f8Van9u1KZNxOzrzWa2u6iqc3B/M1RZpJHaeRvnk9e9AEZYv3NOLBhgjI96AAOgowPSgdhmT60ZPrRRTsVYKKKKqwwooopgFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABk+tGT60UVFhWJKkt38mVJkPzCo6Bx04pEHunhyc3GjQyZJzWtv+bFcz4Luo5tEjhU/MnWumwM5xzQA6iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKrSTrBE8kjhR/tVLJKka7nOBXmXjTxNJM/2azkJC9SD1oAqeLvE8t3I9tCf3XqDXG4G7fgU5maT5iSR6E0dsdqAELeZyUA/CloooHYjoooqyrBRRRTGFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBJSPxS0dazIsaGhagtjqKTSKCPcV2eoePx5eyAc+1eeUgAHQCgRtv4s1F3/15X6E1TutXu7n/AFrsfoxqhgHtSgY6UDsKXYncWJH1pPMGNvzZo7Y7Ud896B8odaDz15oooDlEwg6KaF+elyfWgcdOKA5Qw3qKZ8/94U/A9KTaPQUByi0EA9RRRQHKRsMdOPpT0VfWjAPajAHYUByjKf5o/umjA9KWgOUQgN0FMqQcdKTA9KA5QwPSo9hqWigOUj2n1p+5P7ppaKA5QpNi0tJgelAcobFpmB60/A9KNo9BQHKGB6UtFFAcpGAw6EUvz+op20ego2j0FAcop5681GSpxkHjpUlFAcpHk+tGT60UU7DsFFFFVYYUUUUwCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKVgDJ9akqOpKgix6D8Nrp3nmhfO0JkV6SteVeALhLfUJAzcP0r1VKBDqKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKbQAUM+3rRXMeKfEkek2jojgzt0GeRQBmeMPFAtA9vbuC3sa8xklLyE7jk9TmpLuea+lkmmb5m6ZNQ4HpQAgAD5DfL6UtJgelLQOxHk+tGT60UU7FWCiiiqsMKKKKYBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAGT60ZPrRRU8orBk+tGT60UUcouUMn1oyfWiijlHYMn1oyfWiijlGGT60ZPrRRSsAZPrRk+tFFFgDJ9aMn1ooosAZPrRk+tFFFgDJ9aMn1oop8oBk+tGT60UUcoBk+tGT60UUcoBk+tGT60UUcoBk+tGT60UUcoBk+tGT60UUcoBk+tGT60UUcoBk+tGT60UUcoBk+tGT60UUcoBk+tGT60UUcoBRRRTsAUUUUwCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAqSo6kqLCsafh+7eHVLfYT8717pESY15rwPSJVh1W3YgYD8e1e7Wcqy2kbq2fkpEFuiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACm0VQ1TUU02zeZ2G70oApeINfj0i1d1OX9K8c1TUn1e9a4kZsjoCava/r0+q3L84X0zxWLgelADCS7Zz83pUlIAAcgc+tLQOxHk+tGT60UU7FWCiiiqsMKKKKYBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRRcAoooqbgFFFFFwCiiii4BRRRRcAoooqrgFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUuYAoooo5gCiiijmAKKKKdwCjJ9aKKQE6sI7gEDBHI9q9m8HzPPoqGTOfU14kSTJya9k8Cz+ZpOzPSoMzrKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoptNkkVV+ZsUARXVylrbtJIwGK8l8VeJZtQunghb5PY8Vq+LvFPmN9khIAXqR3rz92HmZ3HPrmgBXTa/y80tGT60UAR5PrRk+tFFOxYUUUVVhhRRRTAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKLhcKKKfgelTcXMGB6UYHpSgA9WxUYJP3jipDmH4HpRgelRPcwQLuklGPrWTfeJ7G06SB/pQHMbeB6UYHpXHf8ACeW//PJqtW3jS1nfldn1oDmOnwPSjA9KrWuo211/q5FNWtw3Z/g9aA5iOiiincOYKKKKu47hRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRRcLj8D0owPSlqPJ9azFzD8D0owPSmqTs+Y5+lJub0oDmH4HpRgelLuGyigOYjooop3HcKKKKdwuH8Ge9el/D673v5QY49M15o33kHau5+HZP9qkZ49KkzPV6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigCJ3rjfF/ieOwgeKA5l9jzWr4l1qPS7FyrgSN0x1FeO395Nf3fnyPke5zQBUlkkuZTNKSGPXNN8vPalYl361JQAUUUUDsR0UUVZVgooopjCiiigAooooAKKKKACiiii4BRRRS5gCiiijmAKKKKOYAoooo5gCiiijmAKKKKOYAooop3AKKKKACiiigAooooAKKKKLhcKKKfgelLmFzBgelGB6UJzTHJHelcVx+B6UxyR3pNwVdzsVHuawNY8Sw6esiRMryD1qSTaurqK3T986L/wACrk9Y8aCJ/LslDD+8a5PUdVuNRly7kL6Z4rPJJ60Aat5rd3eNhpGUegY1RO7+Ig/Wq+aUknqaAHsm3+KjeKjzRQBp6ZqVxZ3AkEh2L1GeK9M0nVodViDoRsXqleRAkcZODWx4e1KSw1BSGZVPUA4BoA9YwM7scUYHpTYCs0KMG4p9AEdFPwPSmU7juFFFFXcu4UUU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YptFADqbSPKkS7nYAVkal4isrCPcHV29A1AGxTd6/wB4Vwk3xFtyHVUIPtXP3njm8Z/9HyPxoA9c3L6j/vqkVt3RhXjKeM9SL7vN49K1tP8AHjwP/pILfjQB6lSbTvznj0rk9M8cWl/LsYiP6108NxHOm5JA4/2aALFNo3/NiigDk/FXh5L62eSNMyfTmvI7q3mtbh0kTH4V9EEAjBGR715v428PYV7u3T8AKAPPMD0owPShvk60tA7kdFPwPSmVZdwooop3C4/A9KMD0paKzJuN2GmPcKVdiAg96ezBMZY/L15ri/FfiUOBb2ow38ZXjFBJQ8T6+ZpTawEFD1Yd65Iknqc0pJYZJJPvTaACiiigAooooAKKKKACiiigAooooA6rwZdFNVMEku2N09a9G42feP5143ZSPBeQyBgMNjivXrSRJbGKTO7f3FAEtFFPwPSncdz0T4e32YPIxzRWZ8PWP9rOuTj0opCPXKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGE7U5rhPGviQQQvbWrgy+xroPEWtppdm2XAevF767e7v3uskj3NAEBZnyXHXr703JxjJxTyc9ajoHYKKKKsqwUUUUxhRRRQAUUUUAFFFFABRRRQAUUUVNwuPwPSgAKdx6UtMWKWeRIUyTUk3LFlZPdz7UVivrXpnh3w3DbRJLKPm9CKi8K+HFt4keZfzFdeY/LGAMCgkhJMfRQPwqEou3Odp96syBynIrk/FOvLaQ+QjYf1B5oAu33ia000fOwZ/audvPHcj/6hiPrXFXd291c75SSPY1EZN78GgDoLzxZfXI2mfBrGlu7ljuaViPdjUTomc55phdHGADigCUszdWJ+ppuAewpaKAI8mjFFFOw7FmG4kh/1RI+hxXY+GvGEltOltcHj1JrhtxQbUJJqRyrFGBxJ7daQj6Etp1uoFlRgVPpU9cD4G1qSe3FtI3KeprvKACuV8baclzpTTADevXiusrP1K1W8spYT1KZoA8CEeGdQOaWreqQfY9SnRe1UMn1oAfgelKWETfMAYfQ9aKztV1e2sI3aZhu9DQA/VL+DToTcSTAKfurnk15xrev3Gpy+WrkR+xqDVtWn1aYbz8qfcHasvFADcnnk89aSiigAooooAKKKKACiiigAooooAKKKKAC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AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvQPA1wi2skRPzelcAOtdR4Jk26tsJzmgD0aiiincs+kKKKKRAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFNoAY8oSNnY429a8t8ceIGvJfssJG1euO9dh4q12PT7CVFdfMPpXjc0z3TmRs5fvQBFuGc4oBJO5jgU/aPQUEAjBHFA7DMn1oyfWiinYqwUUUVVhhRRRTAKKKKACiiigAooooAKKKKACiiigAooooAkpqJnfTqM4rMixLb3JjaOYDDJXsXhfW01CwRC48z614xWx4c1iTSrze7fu/rQI90ptZWka1BqcG5ZBu9M1q0AFGOMdqdRQAU2nUUANobgDFOptACYBOcDNLRQ1ADqbVe5vre2H76VV/4FXI6145gtRttTvPsaAOsu763tImeWdE+pryL4hfFNLK1ktLNwzP6Guf8Y+OZXtpA7/M3QZrxi8vpdRuGkmbp0JOaAC+upb68lubh8yP3zk1U3/OD6dKjzRQBJIwY8VHRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABW34buPs+qqc4LdDWJVzTWK6jAc/x4oA9j7be9FHbfRQO59IUUUUCCiiigAooooAKKKKACiiigAooooAKKKKACm06m/wAdABVDU9Rj06zeaRsN6VcldUj3Z4ry3xv4j8+4+xwkkfWgDnta1htXu+Sdh96yN/LJ6dPakPyNjtRgZzjn1oAMn1oyfWiinYsKKKKqwwooopgFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABk+tGT60UVPKKwZPrQeRg8j0oopWJsa2l61c6Y+6ByB6Zru9L+ICSjy5x83qa8ywPSkBw3mDikI94ttdsblNyzru9M1orJGfuuD/AMCrwC2vpoPuXB/CtCLxTqUf/Lcj8TQB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63wd4Om8QXaFoz5Q68daAF8H+Br7xNeqixMsB/jIr6V8IeBNM8NwJiNXuf75UVf8M+GrLRdPSKABW9cYroY/l+U9fWgB4VQMBQB6AUtQlliTfJKuP9psVg6z450HRVcT30Yf0zmgDp6XPuK8M1v4/W9tI8NlamRv7wPFcLqHxr8Syzb7aYRR/wB3JzQB9W59xSV8n23xq8ULPme7Qr6AHFd1oPx+inZINQtGV/7+aAPdSAeoFMKFhg8j3rF0DxVpniC186zu43H90nBrYlk2LuzxQBwnjv4fWXiOwkmGFuQmRgcmvlrW9Gn0PUJLaZHQq3y7l619wtEsi5zk15V8XfAqavpsl/aRj7VEd5ZVoA+X3plSTBllYMNpz0qOgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDsfAs+y9aA/x0VneEZCmuRnJooA+36KKKACiiigAooooAKKKKACiiigAooptADqYWCrubilrE8RaqNOsHywDt09qAOJ8e6+JpvssDEqvXB61wR5TmrV1cfarid3Pzt0z2qDA9KAGAkdDRk+tFFOxYUUUVVhhRRRTAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKdsNTcLjakQA/wARqM8jCct6UMFGMNjb1qTMRpEiid5jtrzvxTrv22XyYvuetbPi3X1RPssDDP8AeHWvPizE5LE/U0ANooooAKKKKACiiigAooooAKKKKACiiigBR1qdI3nOIxlvSokFej/DXwVN4h1T7RJGVtk6HHDUAbPw1+G51EJqd/HiL+4wzXuMFlHYERwqqxp7YFWbLT47K2EduqpGg2kAYGaS8xDa+bOwCN94ntQBz+rarZ6PbTXksyg/7X8X0rxvXPixfXDPFYYUepNUPib4wOqambC0f/RofusprzcknqaAN2+8V6zfSb5r18+gY1k3F1PcSmSZ2Ynrz1qvRmgBxZj1JP40tMozQA75vSnBmU5DEH2NN3N/eP503NAHqPw5+IV1ol/FaXdxLJbu/cZC/Svpuzv1vVDwcxMmVb1r4ZglMT5BIPqDX198KrprzwFp0kjsXVOWJyT+NAHasqou7PHpXlnxr0NdR8KGaCPdNGd2ccgV6sVBGCAR6GsLxZaxT+GdQ3jpA+PagD4iI2tTalm/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7yKvU/yqKe/t7ZN80qKP94V8i3XxS8SXC4XUJUP+zxWNc+MNdvBifU52Hpk0AfVGtfEfQdGtmlF7HKy9UU815P4l+Nl5qMTx6YfJj9+DXi0txJO5Z3YsepJ60hlZhgklvUmgC3qmrXesXTXF3O0jdsknFZ+T60maKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPv+iiigAooooAKKKKAGsaytd1FdO013ZwHPT2rUY4HNeW+PdYE90LWBiVXrg0Achqlw97fGdsc9ar9KjJJ6nNSUARnnrzRk+tFFOxYUUUVVhhRRRTAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooqbhcfgelM77u1SVGOIPm4qSbkeoXUdpYvI52n1ryTVNRe/vJZiTtboM8V0ni7Wnl/0aJvlXrg9a4ugkM0uSe9JRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAZpSSTyaSigBdxxjJxSUUUAFKCR0JFJRQAUZoooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigApckd6SigBck9TSUUUAFFFFABSgkdDSUUAFLk5zSUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH3/RRRQAUUUUAFFFNZgi7jQBm63fix0933gP7V4hd3TXeoTvyfrXY+O9cY3HkwkFF6471wgJJJU4J6kd6AAKqjaTzS1GeTk9akoAjoooqywooopjCiiigAooooAKKKKAClpKWgAooooASiiigAooooAKKKKACiiigAooooAKKKKACiiii4BT8Db0pn8FPf5rcbeHXrisybh/HWR4h1RdN0903gyt09RWm7tGBK5AVeoryzxHqjajqDbSSie9BJmzXLTSyOxLb/XnFVqKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD7/ooooAKKKKACs3WL6PT7CSVjyO1aDGvNvHutqT9lhYkn0NAHCahete3kkrfdboO1QjjpRgelFACYHpS0UUDsR0UUVZVgooopjFooooASilpKACiiigBaWkpaAEoopKACiiigAooooAKKKKACiiigAooooAKKKKACiiipuFx6AFsY4o/5aO3al6VBdXENlZTyyv8x6AnpUmZz3i/WfsdobeJhufuK82LMSSSeevNaGsag2oXrSHO0dB6Vm0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB9/wBFFFABRTadQBQ1W+TT7J5Wb9a8Q1S7+23zzgkj613/AI+1lIYfsa/ery9X8oHdzv6ZoAd/Du7UtR4bdjJx6VJQBHk+tGT60UU7FhRRRVWGFLSUtMAopaSgBKKKKACloooAWiiigBKSlpKACiiigAooooAKKKKACiiigAooooAKKKKLgPwPSjA9KWo8nf1rMm48fL1rg/Gmqkzi2hfKr1wetdbrWof2dp7uxUO3T2ryS6uXupjI5OT1yaCSDJ9aSiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPv+iiigBu4VWv7r7LZvNkDFSvw9cn461MW2nGFJME9cGgDzrX786rqbu7EfjWQQNg3AHHTNIWLHJJJ9TTzz1oAjyfWjJ9aKKdh2CiiiqsVYKKKWmMKKKWgBKKWkoASloooAKWiigBaSlpKAEooooASiiigAooooAKKKKACiiigAooooAKKKKm4XHpzQ5UY4Hy9aXpWN4j1AadppkSTEj+hqTM5Lxdrf2+4aCPhU9K5KpZZWmlLt36+9RUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAff9FFFAFeSVY4mkcAbeteN+MdSbUtVeJH/d+meK9H8X6smmaawH337V4vK7ySuxGW9aAGYHrRk+tGB6UU7DsFFFFVYqwUUUtMYUUUtAABS0CigBKSnUlACUtFLQAlLRSUAFFFJQAUUUlABRRRQAUUUUAFFFFABRRRQAUUUUXAfgelGB6UzJ9aefmQKOq9TWZNxHkSNdznArzLxTqov74RIx8pOwPFdh4p1NLLTyisvmN0rzCVjJIWznPWgkRgSN3ao6XJxjJxSUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAff9NZgi7jRWXrt+lhps8jNglcqc9KAPN/HuqSXmoiFW+RK5DJboanvbt7u5kkfJ3dM1COOlAEdFFFWWFFFFMYUtFFAC0UUooAWilooAbRS0UAJRS0UAIaSiigBKKWigBtFLSUAFFFFABRRRQAUUUUAFFFFABRRRU3C4dtvekaYQB5X4Veo9aXvnvWD4u1JbKxaFXHmP71JmcT4j1H7fqbbWPljpz0rEzT5OTnvTKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD79rzj4haoRGtkjjJ4ODXeXV0LWGWWQ4REzmvFPEN6NS1ZnzjHSgDLPPWio8n1qSgCOiiirLClpKWmMKWiigBaKKKAHCigUtACUlLRQAlIaUmkoAKKWigBKSnUlACUlLRQAlJS0lABRRRQAUUUUAFFFFFwH4HpRgelLTHfacrynrWZNxkxWKBpnbAXrXlniLUjqOpOw5QdPau08WaobOwMCsPMl6j0rzPcxzyefegkV6ZS5J70lABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB9p+NNTWz0toW6yfrXj9y+5/MH5113jnVRqF4IVY7U965AgFORQAyjJ9aKKdh2CiiiqsVYWiiloAKWkpaYwpaKKAFFLSUZoACaQmikoAKKBS0AFLRRQAlFLSUAJSUtJQAlFLSUAJRRRQAUUUUAFFFFTcLj/4KbI8cMPONlOTlsdq53xNqJstOeNWG9ug9KkzOJ8Saj/aGpO4Y7fTNYtOZizZ6mm0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFPC84wd3pjNGB/n/8AVQAyilKkHBGDUoQ8tt3KvXAOPzoAhooooAKKKKACipljcgsqEoOrBSQKhoAKKKKACiiigAoqcRO0YlER2DvtOPxNQUAFFFFABRRRQAUUUUAFFFFABRVlLS4kgMyW8rxL95gh2j8a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x3lwmPtMsRyvFWdB1LTfiH8Mo/Cdzfw2us2QxAbg4VgOnJrwvJznJ5pQzAghiCOhz0oA9+8JaXZ/B/SNR1fXdRs5NTnj2QW1u4kI/GvNPCZ8PeIvEN4vi25lga+JaO7Q8LKTklvauOeWST77s2PU5qPNAHrlp8HYY9SWa98T6P8A2Ujb5JUn+Zk9APWq3xb8X6T4j1zS4NO3TWGmIYjIvVwccZ/4Ca8x8yTaF3ttBzjPGaj3HGMnHpQB63P8OPD/AIkjgvfCXiC0hidMPbXsnzofqa3rnU9G+GXw6vtBt9Xt9R1m+OX+zNuUH1zXhAd1zhmGeuDSEljkkk+9AHoHgfSfCXiDRNQ0vVbpNP1lvmtLudyI/oRXZeEfCGm/DjUm8R+ItdsZPsyOILa3k3sxrw0Eg5BIIpTI7Yy7HHTJ6UAa/ifXpfEviS91WVdrXL7tvoPSsWlyfWkoAKKKKACiiigD2+iiitDQKWiigApaKKAFoopwFIBMUuKWimAhpKdTTQAlFFFAC0tJS0AFLRS0AFIadTTQAlJRRQAlJS0YoAbSU7BpMYoASilpKAH4HpRgelLUeT61mTckHyKX7HrXCeNNUXzFtEOdnauyvp/s9k7ucV5Lql017qDyN19aCShk+tJRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABSgkdDSUUAGaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA9voopa0NApaSloAKWilFAAKWkooAWikpaAFpDRRQA2lpaKAEpaKWgApaKWgAprU+mv0oAZRRRQAUUUUAFNbrTqa3WgBKSiigA3Nt344o/h3dqePlXYaYOEYvwq9RWZmc54z1IW1ksKk5f3rzckk5JJNbnim/N7qhQMSkfvWFQAyiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo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CSSSSST3pMnOaAPfvHd28/wB0EyzCSZlgMhLhmJ9SK8TtNY1Gxhlt7O9uIIZhiREYqHGMcgdeKgkvruW3SB7mZ4UwFRpCVXHTA7VToAdubOdx/Oux0j4n+LNFsUsrbUy0CfcSZd+36Z6VxlFAG94h8Xa74olR9YvpbjZ91G4VfoO1Hh7xbrXhacy6RfSQFvvR5yjfUd6waKAO91P4u+LtTs2tHvkgjfO828YRmz1yR1rndC8QX3h3WY9WsJVW7iOQZBuyT1/maxKM0Aamtazd69q1zql66vc3DbpNoxWrr3jjWPEWh6fpN+8TW1kMQ7FwcdOfyFctmigDet/El/b+Fbvw9EYhY3My3EuV+YsOMZ/L8qwaXJ45PFJQAUUUUAFFFFABRRRQB7kOlFA6ClrQ0ACnUgpaAEpKWigBKKKKAEpaKWgAoopaACiiloAeOlFA6UUwCiiigApsn3DTqbJ9w0AQUopBS0hjs0hopKAEpDS0H7tAhKB8vWpHAKcDH0qOVgV3EYFZmZxXju92SpZoTiuI3L6CtnxHd/bdUbBzsrDoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD3IdBS0g6UVoaC0oNNpaAHUlANLQAlFLRQAlFLRQAUUUtABRRS0AOHSiiimAUUUUAFNk+4adTZPuGgCEUtIBTsUhiUlOIpKAEpAKdimGRV6mk2S2SIDvJPQ9qytcuGstMnJYZVPlPrWh9oT1rkfHN7shihVj8wyeagg4SWUyTGTJJPU1FRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHuPaiikrQ0HUUlLQAtKDTaWgB1FANLQAlLRRQAUtFFABS0UUALRTh0oqgG0U6igBtNcZUgVJRQBFto21JijbSGRMMCmVLIMVFUslsWub1bUPJnC59a6SvOvE9wUvgAfX+dJiZoHWQP4q53xHfG9vUwxKog7+1UXuGPeqzsWbr1IqSSKiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPcKKSlrQ0FopKWgBaWkpaAFpRTaWmMdS0lFAC0tJS0AFLSUtADqKKKYgooooAKKKWgAoxRS0DIJetMp8v3qZWb3IYE4Ga8r8TTb9Rxxxn+deoXDFbaQjqFNeQ6w5fU5s9jikSUSaB/Ee9IabmkAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB7fS0lLWhoFLRRQAtLSUtAC0UUUwFpaSloAWlpKKBi0tJS0CHUUUUwCiiigBaKKKAFpaSloAry9aZT5PvCmVm9yGQXpxZTf7teRanzqM/+9Xq2szCHTZSe4xXkVzL5lzI/qxqREe3NIV29aN1NJJ6nNACUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB7hRS0VoaBS0lLQAUtFLTAKWkpaAFAzS7aFp1IYmKMUtFABRRRQA6ijtRTuIKKKKLgLS0lLQAUtJS0DKsh/eYpBUhTPPrTSuBUNEWOU8ZXpgs/LB7fqa82rrPGd6s915anv8AoK5OpJCkoooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA9xHQUtA6UVoaBRRS0AFLRRQAUtFLQAq06kWloGFFFFABRRRQA7tRR2ooEFLRRTAKWiloAKWkpaAIl5UVHdHbaysOoU1PtAGBVTU3EenyknBIwKQHj+su0mqTbv4Tis41pahG0l7M+M5Y1QZCvWszMjop+B6U3FACUU/A3ZxxRgelADKKUDnmnY5/+tQAyip441Jyx49hUeMHkCgBlFPwPSkAHegBtFPwPSmUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHuY6CigdBS1oaCUtFLQAlLRS4oASlpcUYoAUUtIKWgYUUUUAFFFFADu1FHalFAgpaDSUwFpaSl6DNACZozUHmcn608NU3FclrnvE16IrfywecfrW6XCqWPQDNedeIdQ8++K7sgc0Ng2ZuwE5NI1jFcI3zqpAzz3pUdX4yKc1kQfN85QAOlQQZU9k0R45qmy4NbM0yKME5rLmdWYkCgCIUUmaN1ABilFJmjdQBKvAprCm76C+aADFKBTd1G6gB5x0x+NQ04kmm0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHug+6KKUfdH0orQ0CloooAWjFFLQAYpcUUtACYpcUUtACYpcCiloGG0UbRS0tACYFKBRS0CExmkxTqKYCYob7ppaH+4aAKm3BJ9TSipDTagkq6jL5VhK2ccYFeTX1z5l7K2f4q9F8VztDpjbfQmvK2JJJPU0mJkxuGHQ0z7TPjBc4+tQmm0hEjSMeppmaSigBaKSigBaKSigBaKSigBaKSigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/Z"
    }
   },
   "cell_type": "markdown",
   "id": "1c4107aa",
   "metadata": {},
   "source": [
    "![9bb89e2232f181fd6b0e9816cf2f536f.jpg](attachment:9bb89e2232f181fd6b0e9816cf2f536f.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f2c6ba86",
   "metadata": {},
   "source": [
    "# 1.Root"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2c264494",
   "metadata": {},
   "source": [
    "#### 1.1 Fix point iteration"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "adb5a3d7",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "a1ffafec",
   "metadata": {},
   "outputs": [],
   "source": [
    "def calXnew(Xold):\n",
    "    return ( (6 - Xold) / ( Xold * ( Xold + 1 )))+1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "87a4827c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Finshed,the result is 1.8170729562843353\n"
     ]
    }
   ],
   "source": [
    "Xold = 10\n",
    "error = 1e-4\n",
    "i = 0\n",
    "maxIter = 200\n",
    "data = np.zeros((maxIter,4))\n",
    "\n",
    "while (i < maxIter):\n",
    "    Xnew = calXnew(Xold)\n",
    "    difference = abs(Xnew - Xold)\n",
    "    data[i,:] = [i+1 , Xnew, Xold,difference]\n",
    "#    print(\"次数：\",i,\"结果：\",Xnew,\"本次差值：\",difference)\n",
    "    if difference < error:\n",
    "        print (\"Finshed,the result is\",Xnew)\n",
    "        break\n",
    "    Xold = Xnew\n",
    "    i += 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "7987c339",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1.00000000e+00, 9.63636364e-01, 1.00000000e+01, 9.03636364e+00],\n",
       "       [2.00000000e+00, 3.66160028e+00, 9.63636364e-01, 2.69796392e+00],\n",
       "       [3.00000000e+00, 1.13699755e+00, 3.66160028e+00, 2.52460273e+00],\n",
       "       [4.00000000e+00, 3.00143246e+00, 1.13699755e+00, 1.86443491e+00],\n",
       "       [5.00000000e+00, 1.24967196e+00, 3.00143246e+00, 1.75176050e+00],\n",
       "       [6.00000000e+00, 2.68969524e+00, 1.24967196e+00, 1.44002328e+00],\n",
       "       [7.00000000e+00, 1.33356034e+00, 2.68969524e+00, 1.35613490e+00],\n",
       "       [8.00000000e+00, 2.49952582e+00, 1.33356034e+00, 1.16596548e+00],\n",
       "       [9.00000000e+00, 1.40018430e+00, 2.49952582e+00, 1.09934152e+00],\n",
       "       [1.00000000e+01, 2.36870746e+00, 1.40018430e+00, 9.68523161e-01],\n",
       "       [1.10000000e+01, 1.45507870e+00, 2.36870746e+00, 9.13628762e-01],\n",
       "       [1.20000000e+01, 2.27225587e+00, 1.45507870e+00, 8.17177174e-01],\n",
       "       [1.30000000e+01, 1.50135067e+00, 2.27225587e+00, 7.70905200e-01],\n",
       "       [1.40000000e+01, 2.19791338e+00, 1.50135067e+00, 6.96562706e-01],\n",
       "       [1.50000000e+01, 1.54093457e+00, 2.19791338e+00, 6.56978810e-01],\n",
       "       [1.60000000e+01, 2.13884905e+00, 1.54093457e+00, 5.97914480e-01],\n",
       "       [1.70000000e+01, 1.57513025e+00, 2.13884905e+00, 5.63718796e-01],\n",
       "       [1.80000000e+01, 2.09089968e+00, 1.57513025e+00, 5.15769430e-01],\n",
       "       [1.90000000e+01, 1.60486535e+00, 2.09089968e+00, 4.86034332e-01],\n",
       "       [2.00000000e+01, 2.05135238e+00, 1.60486535e+00, 4.46487033e-01],\n",
       "       [2.10000000e+01, 1.63083494e+00, 2.05135238e+00, 4.20517441e-01],\n",
       "       [2.20000000e+01, 2.01834478e+00, 1.63083494e+00, 3.87509835e-01],\n",
       "       [2.30000000e+01, 1.65358105e+00, 2.01834478e+00, 3.64763734e-01],\n",
       "       [2.40000000e+01, 1.99054394e+00, 1.65358105e+00, 3.36962892e-01],\n",
       "       [2.50000000e+01, 1.67354017e+00, 1.99054394e+00, 3.17003766e-01],\n",
       "       [2.60000000e+01, 1.96696292e+00, 1.67354017e+00, 2.93422748e-01],\n",
       "       [2.70000000e+01, 1.69107300e+00, 1.96696292e+00, 2.75889922e-01],\n",
       "       [2.80000000e+01, 1.94685026e+00, 1.69107300e+00, 2.55777265e-01],\n",
       "       [2.90000000e+01, 1.70648351e+00, 1.94685026e+00, 2.40366751e-01],\n",
       "       [3.00000000e+01, 1.92962042e+00, 1.70648351e+00, 2.23136906e-01],\n",
       "       [3.10000000e+01, 1.72003179e+00, 1.92962042e+00, 2.09588626e-01],\n",
       "       [3.20000000e+01, 1.91480829e+00, 1.72003179e+00, 1.94776494e-01],\n",
       "       [3.30000000e+01, 1.73194281e+00, 1.91480829e+00, 1.82865475e-01],\n",
       "       [3.40000000e+01, 1.90203851e+00, 1.73194281e+00, 1.70095700e-01],\n",
       "       [3.50000000e+01, 1.74241271e+00, 1.90203851e+00, 1.59625805e-01],\n",
       "       [3.60000000e+01, 1.89100414e+00, 1.74241271e+00, 1.48591430e-01],\n",
       "       [3.70000000e+01, 1.75161340e+00, 1.89100414e+00, 1.39390738e-01],\n",
       "       [3.80000000e+01, 1.88145137e+00, 1.75161340e+00, 1.29837972e-01],\n",
       "       [3.90000000e+01, 1.75969612e+00, 1.88145137e+00, 1.21755253e-01],\n",
       "       [4.00000000e+01, 1.87316847e+00, 1.75969612e+00, 1.13472350e-01],\n",
       "       [4.10000000e+01, 1.76679418e+00, 1.87316847e+00, 1.06374282e-01],\n",
       "       [4.20000000e+01, 1.86597742e+00, 1.76679418e+00, 9.91832360e-02],\n",
       "       [4.30000000e+01, 1.77302528e+00, 1.86597742e+00, 9.29521433e-02],\n",
       "       [4.40000000e+01, 1.85972765e+00, 1.77302528e+00, 8.67023735e-02],\n",
       "       [4.50000000e+01, 1.77849331e+00, 1.85972765e+00, 8.12343369e-02],\n",
       "       [4.60000000e+01, 1.85429111e+00, 1.77849331e+00, 7.57977987e-02],\n",
       "       [4.70000000e+01, 1.78329007e+00, 1.85429111e+00, 7.10010437e-02],\n",
       "       [4.80000000e+01, 1.84955845e+00, 1.78329007e+00, 6.62683844e-02],\n",
       "       [4.90000000e+01, 1.78749657e+00, 1.84955845e+00, 6.20618846e-02],\n",
       "       [5.00000000e+01, 1.84543595e+00, 1.78749657e+00, 5.79393774e-02],\n",
       "       [5.10000000e+01, 1.79118432e+00, 1.84543595e+00, 5.42516298e-02],\n",
       "       [5.20000000e+01, 1.84184302e+00, 1.79118432e+00, 5.06586988e-02],\n",
       "       [5.30000000e+01, 1.79441637e+00, 1.84184302e+00, 4.74266427e-02],\n",
       "       [5.40000000e+01, 1.83871022e+00, 1.79441637e+00, 4.42938430e-02],\n",
       "       [5.50000000e+01, 1.79724832e+00, 1.83871022e+00, 4.14618996e-02],\n",
       "       [5.60000000e+01, 1.83597757e+00, 1.79724832e+00, 3.87292525e-02],\n",
       "       [5.70000000e+01, 1.79972910e+00, 1.83597757e+00, 3.62484704e-02],\n",
       "       [5.80000000e+01, 1.83359318e+00, 1.79972910e+00, 3.38640807e-02],\n",
       "       [5.90000000e+01, 1.80190180e+00, 1.83359318e+00, 3.16913749e-02],\n",
       "       [6.00000000e+01, 1.83151208e+00, 1.80190180e+00, 2.96102739e-02],\n",
       "       [6.10000000e+01, 1.80380433e+00, 1.83151208e+00, 2.77077466e-02],\n",
       "       [6.20000000e+01, 1.82969525e+00, 1.80380433e+00, 2.58909181e-02],\n",
       "       [6.30000000e+01, 1.80546999e+00, 1.82969525e+00, 2.42252549e-02],\n",
       "       [6.40000000e+01, 1.82810880e+00, 1.80546999e+00, 2.26388101e-02],\n",
       "       [6.50000000e+01, 1.80692806e+00, 1.82810880e+00, 2.11807421e-02],\n",
       "       [6.60000000e+01, 1.82672328e+00, 1.80692806e+00, 1.97952193e-02],\n",
       "       [6.70000000e+01, 1.80820424e+00, 1.82672328e+00, 1.85190451e-02],\n",
       "       [6.80000000e+01, 1.82551305e+00, 1.80820424e+00, 1.73088107e-02],\n",
       "       [6.90000000e+01, 1.80932107e+00, 1.82551305e+00, 1.61919724e-02],\n",
       "       [7.00000000e+01, 1.82445578e+00, 1.80932107e+00, 1.51347088e-02],\n",
       "       [7.10000000e+01, 1.81029837e+00, 1.82445578e+00, 1.41574159e-02],\n",
       "       [7.20000000e+01, 1.82353205e+00, 1.81029837e+00, 1.32336811e-02],\n",
       "       [7.30000000e+01, 1.81115347e+00, 1.82353205e+00, 1.23785777e-02],\n",
       "       [7.40000000e+01, 1.82272490e+00, 1.81115347e+00, 1.15714267e-02],\n",
       "       [7.50000000e+01, 1.81190160e+00, 1.82272490e+00, 1.08232973e-02],\n",
       "       [7.60000000e+01, 1.82201956e+00, 1.81190160e+00, 1.01179549e-02],\n",
       "       [7.70000000e+01, 1.81255609e+00, 1.82201956e+00, 9.46346453e-03],\n",
       "       [7.80000000e+01, 1.82140313e+00, 1.81255609e+00, 8.84704271e-03],\n",
       "       [7.90000000e+01, 1.81312863e+00, 1.82140313e+00, 8.27450779e-03],\n",
       "       [8.00000000e+01, 1.82086439e+00, 1.81312863e+00, 7.73576128e-03],\n",
       "       [8.10000000e+01, 1.81362944e+00, 1.82086439e+00, 7.23494751e-03],\n",
       "       [8.20000000e+01, 1.82039350e+00, 1.81362944e+00, 6.76406159e-03],\n",
       "       [8.30000000e+01, 1.81406749e+00, 1.82039350e+00, 6.32600618e-03],\n",
       "       [8.40000000e+01, 1.81998191e+00, 1.81406749e+00, 5.91441270e-03],\n",
       "       [8.50000000e+01, 1.81445064e+00, 1.81998191e+00, 5.53126789e-03],\n",
       "       [8.60000000e+01, 1.81962213e+00, 1.81445064e+00, 5.17148538e-03],\n",
       "       [8.70000000e+01, 1.81478574e+00, 1.81962213e+00, 4.83638087e-03],\n",
       "       [8.80000000e+01, 1.81930762e+00, 1.81478574e+00, 4.52187558e-03],\n",
       "       [8.90000000e+01, 1.81507882e+00, 1.81930762e+00, 4.22879769e-03],\n",
       "       [9.00000000e+01, 1.81903268e+00, 1.81507882e+00, 3.95386264e-03],\n",
       "       [9.10000000e+01, 1.81533514e+00, 1.81903268e+00, 3.69754820e-03],\n",
       "       [9.20000000e+01, 1.81879233e+00, 1.81533514e+00, 3.45719788e-03],\n",
       "       [9.30000000e+01, 1.81555929e+00, 1.81879233e+00, 3.23304109e-03],\n",
       "       [9.40000000e+01, 1.81858221e+00, 1.81555929e+00, 3.02291977e-03],\n",
       "       [9.50000000e+01, 1.81575532e+00, 1.81858221e+00, 2.82689049e-03],\n",
       "       [9.60000000e+01, 1.81839851e+00, 1.81575532e+00, 2.64319224e-03],\n",
       "       [9.70000000e+01, 1.81592675e+00, 1.81839851e+00, 2.47176439e-03],\n",
       "       [9.80000000e+01, 1.81823791e+00, 1.81592675e+00, 2.31116343e-03],\n",
       "       [9.90000000e+01, 1.81607666e+00, 1.81823791e+00, 2.16125215e-03],\n",
       "       [1.00000000e+02, 1.81809750e+00, 1.81607666e+00, 2.02084201e-03],\n",
       "       [1.01000000e+02, 1.81620776e+00, 1.81809750e+00, 1.88974867e-03],\n",
       "       [1.02000000e+02, 1.81797474e+00, 1.81620776e+00, 1.76698916e-03],\n",
       "       [1.03000000e+02, 1.81632239e+00, 1.81797474e+00, 1.65235312e-03],\n",
       "       [1.04000000e+02, 1.81786742e+00, 1.81632239e+00, 1.54502408e-03],\n",
       "       [1.05000000e+02, 1.81642263e+00, 1.81786742e+00, 1.44478047e-03],\n",
       "       [1.06000000e+02, 1.81777358e+00, 1.81642263e+00, 1.35094130e-03],\n",
       "       [1.07000000e+02, 1.81651029e+00, 1.81777358e+00, 1.26328406e-03],\n",
       "       [1.08000000e+02, 1.81769153e+00, 1.81651029e+00, 1.18123846e-03],\n",
       "       [1.09000000e+02, 1.81658694e+00, 1.81769153e+00, 1.10458796e-03],\n",
       "       [1.10000000e+02, 1.81761980e+00, 1.81658694e+00, 1.03285312e-03],\n",
       "       [1.11000000e+02, 1.81665397e+00, 1.81761980e+00, 9.65827816e-04],\n",
       "       [1.12000000e+02, 1.81755708e+00, 1.81665397e+00, 9.03107525e-04],\n",
       "       [1.13000000e+02, 1.81671258e+00, 1.81755708e+00, 8.44499148e-04],\n",
       "       [1.14000000e+02, 1.81750224e+00, 1.81671258e+00, 7.89660234e-04],\n",
       "       [1.15000000e+02, 1.81676382e+00, 1.81750224e+00, 7.38412111e-04],\n",
       "       [1.16000000e+02, 1.81745429e+00, 1.81676382e+00, 6.90463937e-04],\n",
       "       [1.17000000e+02, 1.81680864e+00, 1.81745429e+00, 6.45651973e-04],\n",
       "       [1.18000000e+02, 1.81741236e+00, 1.81680864e+00, 6.03728483e-04],\n",
       "       [1.19000000e+02, 1.81684782e+00, 1.81741236e+00, 5.64544552e-04],\n",
       "       [1.20000000e+02, 1.81737571e+00, 1.81684782e+00, 5.27888588e-04],\n",
       "       [1.21000000e+02, 1.81688208e+00, 1.81737571e+00, 4.93625990e-04],\n",
       "       [1.22000000e+02, 1.81734366e+00, 1.81688208e+00, 4.61575586e-04],\n",
       "       [1.23000000e+02, 1.81691204e+00, 1.81734366e+00, 4.31616327e-04],\n",
       "       [1.24000000e+02, 1.81731563e+00, 1.81691204e+00, 4.03592736e-04],\n",
       "       [1.25000000e+02, 1.81693824e+00, 1.81731563e+00, 3.77396403e-04],\n",
       "       [1.26000000e+02, 1.81729113e+00, 1.81693824e+00, 3.52893625e-04],\n",
       "       [1.27000000e+02, 1.81696114e+00, 1.81729113e+00, 3.29987650e-04],\n",
       "       [1.28000000e+02, 1.81726971e+00, 1.81696114e+00, 3.08563286e-04],\n",
       "       [1.29000000e+02, 1.81698117e+00, 1.81726971e+00, 2.88534434e-04],\n",
       "       [1.30000000e+02, 1.81725097e+00, 1.81698117e+00, 2.69801685e-04],\n",
       "       [1.31000000e+02, 1.81699869e+00, 1.81725097e+00, 2.52288609e-04],\n",
       "       [1.32000000e+02, 1.81723460e+00, 1.81699869e+00, 2.35909287e-04],\n",
       "       [1.33000000e+02, 1.81701400e+00, 1.81723460e+00, 2.20596014e-04],\n",
       "       [1.34000000e+02, 1.81722027e+00, 1.81701400e+00, 2.06274430e-04],\n",
       "       [1.35000000e+02, 1.81702739e+00, 1.81722027e+00, 1.92884665e-04],\n",
       "       [1.36000000e+02, 1.81720775e+00, 1.81702739e+00, 1.80362287e-04],\n",
       "       [1.37000000e+02, 1.81703910e+00, 1.81720775e+00, 1.68654433e-04],\n",
       "       [1.38000000e+02, 1.81719680e+00, 1.81703910e+00, 1.57705214e-04],\n",
       "       [1.39000000e+02, 1.81704933e+00, 1.81719680e+00, 1.47468016e-04],\n",
       "       [1.40000000e+02, 1.81718723e+00, 1.81704933e+00, 1.37894313e-04],\n",
       "       [1.41000000e+02, 1.81705829e+00, 1.81718723e+00, 1.28943047e-04],\n",
       "       [1.42000000e+02, 1.81717886e+00, 1.81705829e+00, 1.20572050e-04],\n",
       "       [1.43000000e+02, 1.81706611e+00, 1.81717886e+00, 1.12745193e-04],\n",
       "       [1.44000000e+02, 1.81717154e+00, 1.81706611e+00, 1.05425804e-04]])"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[:i,:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "a37eba1c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'XNew')"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(data[:i,0],data[:i,1])\n",
    "plt.xlabel(\"iteration number\")\n",
    "plt.ylabel(\"XNew\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a8fd1fd0",
   "metadata": {},
   "source": [
    "#### 1.3 Bisection "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "0997b195",
   "metadata": {},
   "outputs": [],
   "source": [
    "def f(x):\n",
    "    return x ** 3 - 6"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "9aa37efe",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "次数 22 结果 1.8171204924583435\n"
     ]
    }
   ],
   "source": [
    "left = 0.5\n",
    "right = 3\n",
    "middle = (left + right) / 2\n",
    "t = 0\n",
    "array = np.zeros((50,2))\n",
    "while True:\n",
    "        if f(middle) > 0:\n",
    "            right = middle\n",
    "        else:\n",
    "            left = middle\n",
    "        middle = (left + right) / 2\n",
    "        array[t,0] = t\n",
    "        array[t,1] = middle\n",
    "        t += 1\n",
    "        if abs(left - right) < 0.000001 :\n",
    "            break\n",
    "print (\"次数\",t,\"结果\",middle)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "184ff06f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x19a89130be0>]"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD7CAYAAAB68m/qAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAaMElEQVR4nO3dfXRc9X3n8fd3NHrwSPKDHmz8JAmMjHkowSACCbFDaJrEOe1CNnSbJgsNCTU5y1I4JbtJOHu2PSe7TcnZsG23G6gTCKGl6XYXks12ExKWQ2oTwInsODi2CH6UMZaxJMtIth5H890/ZmTLsqQZyyPdmXs/r3N0Zube38x8uQyfc/nd3+93zd0REZHiFwu6ABERyQ8FuohISCjQRURCQoEuIhISCnQRkZBQoIuIhETWQDezlWb2opm1mdkuM7t/mrbXm9momd2e3zJFRCSbeA5tksCD7r7dzKqBbWb2vLvvHt/IzEqAh4EfzUKdIiKSRdZAd/cOoCPzvM/M2oDlwO4JTe8DngGuz+WL6+rqvKmp6byKFRGJum3btnW5e/1k+3I5Qz/NzJqAtcDWCduXAx8DbiHHQG9qaqK1tfV8vl5EJPLMrH2qfTlfFDWzKtJn4A+4e++E3X8BfMHdR7N8xkYzazWz1s7Ozly/WkREcmC5rOViZqXAPwE/cvdHJtl/ALDMyzqgH9jo7t+b6jNbWlpcZ+giIufHzLa5e8tk+7J2uZiZAY8DbZOFOYC7Xzyu/ZPAP00X5iIikn+59KHfBNwB7DSzHZltDwENAO7+2OyUJiIi5yOXUS4vcaY7JSt3//SFFCQiIjOjmaIiIiGhQBcRCYmiC/RfH+3j4ede552BkaBLEREpKEUX6IeO9/PoT/ZxoOtU0KWIiBSUogv0xtoEAO3dCnQRkfGKLtAbatKBfqi7P+BKREQKS9EFekVpCUvml9N+XIEuIjJe0QU6QGNNpc7QRUQmKM5Ar01wUH3oIiJnKdpAP9Y3xMDwtIs7iohESlEGekNtJZAewigiImlFGeiNNRq6KCIyUXEGemYsus7QRUTOKMpAX5goY8G8Ul0YFREZpygDHdJn6e0auigiclrRBnpDTUJdLiIi4xRtoDfWJnirZ4DkaCroUkRECkLxBnpNJcmUc+TEYNCliIgUhOIN9MxIF10YFRFJK+JAT08u0iJdIiJpRRvoi6vLKY/HOKQzdBERoIgDPRYzGmo0dFFEZEzRBjqk+9E1dFFEJK3IA72S9u5+3D3oUkREAlfkgZ5gYGSUzr6hoEsREQlc1kA3s5Vm9qKZtZnZLjO7f5I2t5rZa2a2w8xazex9s1Pu2cbuL6qRLiIiuZ2hJ4EH3f1y4EbgXjO7YkKbF4B3ufs1wGeAb+a1yimcHrqoC6MiItkD3d073H175nkf0AYsn9DmpJ/pyK4E5qRTe/nCecQMDV0UEeE8+9DNrAlYC2ydZN/HzOx14P+SPkufdWXxGMsWzuOgztBFRHIPdDOrAp4BHnD33on73f277r4GuA348hSfsTHTx97a2dk5w5LP1lRbqT50ERFyDHQzKyUd5k+7+7PTtXX3zcAqM6ubZN8md29x95b6+voZFTxRQ21CXS4iIuQ2ysWAx4E2d39kijaXZtphZtcCZUB3PgudSmNNgp7+EXoHR+bi60REClY8hzY3AXcAO81sR2bbQ0ADgLs/BnwcuNPMRoAB4Pd8jmb7nL6/aHc/Vy1fMBdfKSJSkLIGuru/BFiWNg8DD+erqPPRUJMeuniw+5QCXUQirahnisKZM3SNRReRqCv6QK8sj1NXVc4hBbqIRFzRBzqkz9Lbj2uki4hEWzgCvSahM3QRibxQBHpDbYKO3kEGR0aDLkVEJDChCPSm2krc4XCPztJFJLpCEegNGukiIhKOQG+sUaCLiIQi0Gsqy6gqj+v+oiISaaEIdDOjoSZBuxbpEpEIC0WgQ2YsurpcRCTCQhTolbzZ089oak7WBBMRKTghCvQEI6NOxzsDQZciIhKI8AR6zZlldEVEoig0gX56LLpGuohIRIUm0JcumEdpiXFQI11EJKJCE+glMWOlFukSkQgLTaBDuh9dQxdFJKrCFei1lRw63s8c3c5URKSghCrQG2oSnBxKcvzUcNCliIjMuVAF+tj9RQ+q20VEIihkgV4JwCHdjk5EIihUgb6yZh5mWkZXRKIpVIFeHi9h6fwKDV0UkUgKVaBDesaoZouKSBRlDXQzW2lmL5pZm5ntMrP7J2nzKTN7LfP3spm9a3bKza6xplLrootIJMVzaJMEHnT37WZWDWwzs+fdffe4NgeA97t7j5ltADYBN8xCvVk11iXoOjnMyaEkVeW5/OOJiIRD1jN0d+9w9+2Z531AG7B8QpuX3b0n8/JVYEW+C81VY01mpIv60UUkYs6rD93MmoC1wNZpmn0W+OEU799oZq1m1trZ2Xk+X52zsbHoGrooIlGTc6CbWRXwDPCAu/dO0eYDpAP9C5Ptd/dN7t7i7i319fUzqTer08vo6gxdRCImp05mMyslHeZPu/uzU7S5GvgmsMHdu/NX4vmZX1HKokSpZouKSOTkMsrFgMeBNnd/ZIo2DcCzwB3u/kZ+Szx/DbWV6nIRkcjJ5Qz9JuAOYKeZ7chsewhoAHD3x4D/CNQCX0/nP0l3b8l7tTlqqk2wrb0ne0MRkRDJGuju/hJgWdrcDdydr6IuVGNNgv/zyyMMJ1OUxUM3d0pEZFKhTLuG2kpSDm+dGAi6FBGRORPKQD+zjK760UUkOsIZ6DWZsega6SIiERLKQK+vLmdeaYnGootIpIQy0M2MxtqEhi6KSKSEMtAhfX9RnaGLSJSENtAbM+uip1IedCkiInMitIHeUFvJcDLF232DQZciIjInQhvoTVqkS0QiJrSBrnXRRSRqQhvoyxZWEI8Z7RrpIiIREdpAj5fEWL5onpbRFZHICG2gQ3roorpcRCQqQh3ojbUJ2rWei4hERKgDvam2kt7BJCf6h4MuRURk1oU60BtqNHRRRKIj1IHeWJseuqhldEUkCkId6A1aRldEIiTUgT6vrITF1eW0H1egi0j4hTrQIX1hVGfoIhIFoQ/0htqEZouKSCSEPtAbaxK83TvEwPBo0KWIiMyq0Ad6Q2bVxUPqRxeRkAt9oI8NXdSMUREJu6yBbmYrzexFM2szs11mdv8kbdaY2StmNmRmn5+dUmemSWfoIhIR8RzaJIEH3X27mVUD28zseXffPa7NceCPgNtmocYLsjBRxvyKuGaLikjoZT1Dd/cOd9+eed4HtAHLJ7Q55u4/B0ZmpcoL1FhbqbHoIhJ659WHbmZNwFpg66xUM0satOqiiERAzoFuZlXAM8AD7t47ky8zs41m1mpmrZ2dnTP5iBlprEnwVs8AydHUnH2niMhcyynQzayUdJg/7e7PzvTL3H2Tu7e4e0t9ff1MP+a8NdVWkkw5R04Mztl3iojMtVxGuRjwONDm7o/Mfkn5NzYWXTNGRSTMchnlchNwB7DTzHZktj0ENAC4+2NmdhHQCswHUmb2AHDFTLtm8q2x9sy66OuaAy5GRGSWZA10d38JsCxtjgIr8lVUvi2prqAsHtOFUREJtdDPFAWIxYyGmoTGootIqEUi0CE90kWzRUUkzKIT6LWVHDrej7sHXYqIyKyIUKAn6B8epfPkUNCliIjMisgEesO4kS4iImEUmUBvrFGgi0i4RSbQVyxKEDM4pKGLIhJSkQn0sniMZQvnsa9LgS4i4RSZQAdoaVzEq/u6SaU00kVEwidSgb6uuZ7uU8Ps7iiIFQlERPIqYoFeB8CWPV0BVyIikn+RCvTF8ytYc1E1m9+Yu7XYRUTmSqQCHWD96npa24/TP5wMuhQRkbyKXqA31zMy6ry6vzvoUkRE8ipygd7StIiK0hib31A/uoiES+QCvaK0hBsurmXLHvWji0i4RC7QIT3aZV/nKd46MRB0KSIieRPJQF+/On2D6i0a7SIiIRLJQG9eXMVF8yvYrG4XEQmRSAa6mbGuuY6X9nQxqmUARCQkIhnokO526R1M8trhE0GXIiKSF5EN9JsurcMMDV8UkdCIbKDXVJbxG8sXaPiiiIRGZAMd0rNGf/HmCXoHR4IuRUTkgkU60Nc11zGacl7eq2UARKT4ZQ10M1tpZi+aWZuZ7TKz+ydpY2b2V2a218xeM7NrZ6fc/Lq2cRGVZSXqdhGRUIjn0CYJPOju282sGthmZs+7++5xbTYAzZm/G4BHM48FrbQkxntW1bF5TyfujpkFXZKIyIxlPUN39w5335553ge0AcsnNLsVeMrTXgUWmtnSvFc7C9avruPN4wO0d/cHXYqIyAU5rz50M2sC1gJbJ+xaDrw57vVhzg39grS+Ob0MgGaNikixyznQzawKeAZ4wN0n3pRzsr6Kc6ZgmtlGM2s1s9bOzsII0MbaBCtr5mk8uogUvZwC3cxKSYf50+7+7CRNDgMrx71eARyZ2MjdN7l7i7u31NfXz6TevDMz1jfX88q+LkZGU0GXIyIyY7mMcjHgcaDN3R+Zotn3gTszo11uBN5x94481jmr1jXXc2p4lO3tPUGXIiIyY7mMcrkJuAPYaWY7MtseAhoA3P0x4AfAR4G9QD9wV94rnUXvvbSWkpixZU8XN1xSG3Q5IiIzkjXQ3f0lJu8jH9/GgXvzVdRcm19RytqVC9myp5PPf/iyoMsREZmRSM8UHW9dcz2vvfUOx08NB12KiMiMKNAz1q+uwx1+ulejXUSkOCnQM65esZD5FXE267Z0IlKkFOgZJTHjfc11bNnTRfqSgIhIcVGgj7O+uZ6jvYPsPXYy6FJERM6bAn2cdavTk53+Wd0uIlKEFOjjLF84j1X1lWzZowujIlJ8FOgTrGuuZ+uBbgZHRoMuRUTkvCjQJ1i/uo7BkRStB7UMgIgUFwX6BDdeUktpiekuRiJSdBToEyTK4rQ01ujCqIgUHQX6JNavruf1o30c6x0MuhQRkZwp0CexrrkOQKNdRKSoKNAnccXS+dRWlqkfXUSKigJ9ErGYsa65jpf2dpFKaRkAESkOCvQprGuup+vkMLs7Jt4+VUSkMCnQp6B+dBEpNgr0KSyeX8Gai6q1nK6IFA0F+jTWr66ntf04/cPJoEsREclKgT6N9c31jIw6W/cfD7oUEZGsFOjTaGlaREVpTLNGRaQoKNCnUVFawg0X12o8uogUBQV6Fuua69jXeYq3TgwEXYqIyLQU6Fmsz9zFaIu6XUSkwCnQs2heXMVF8ys0Hl1ECl7WQDezJ8zsmJn9aor9i8zsu2b2mpn9zMyuyn+ZwTE7swzAqJYBEJEClssZ+pPAR6bZ/xCww92vBu4E/jIPdRWUW9Ys5p2BEX6062jQpYiITClroLv7ZmC6gdhXAC9k2r4ONJnZkvyUVxg+dOVFrF5SxVefe53hZCrockREJpWPPvRfAv8SwMzeDTQCKyZraGYbzazVzFo7O4vnImNJzPjShss52N3P329tD7ocEZFJ5SPQ/xxYZGY7gPuAXwCTzpV3903u3uLuLfX19Xn46rlz82X1vOeSWv7yhT30Do4EXY6IyDkuONDdvdfd73L3a0j3odcDBy70cwuNmfHQRy+np3+ER3+yL+hyRETOccGBbmYLzaws8/JuYLO7h3IR8d9YsYDbrlnGEy8d4IgmGolIgcll2OJ3gFeAy8zssJl91sw+Z2afyzS5HNhlZq8DG4D7Z6/c4H3+w5fhwNd+/EbQpYiInCWerYG7/36W/a8AzXmrqMCtWJTgrvc2sWnLfj77vou5Ytn8oEsSEQE0U3RG/s3NlzK/opSv/LAt6FJERE5ToM/AgkQp991yKVv2dGlpXREpGAr0GbrjPY2srJnHV37QpiUBRKQgKNBnqDxewr//8BpeP9rHs9sPB12OiIgC/UL89tVLedeKBXztx28wMDwadDkiEnEK9AswNtnoaO8gT/w0dHOpRKTIKNAv0A2X1PLBy5fw6E/20X1yKOhyRCTCFOh58MUNaxgYGeWvXtgTdCkiEmEK9Dy4dHEVn7h+JU9vPcT+zpNBlyMiEaVAz5MHPriasniMrz7366BLEZGIUqDnSX11OfesX8Vzu47SenC6+4GIiMwOBXoe/eH6i1lcXc6f/aANd002EpG5pUDPo0RZnD/+rdVsP3SC536l+4+KyNxSoOfZ77asZPWSKh7W/UdFZI4p0PNM9x8VkaAo0GfBzZfV895Vuv+oiMwtBfosMEufpff0j/CY7j8qInNEgT5Lxu4/+rjuPyoic0SBPovG7j/67/7XL+kfTgZdjoiEnAJ9Fq1YlOA/3XYVr+zr5pPf2ErPqeGgSxKREFOgz7J/1bKSR//1dezu6OX2x17mLXW/iMgssaBmNLa0tHhra2sg3x2Erfu7ufupVqrK43z7M+9m9ZLqoEs6rbNviO2Hetje3sP+rlPUVZWzbEEFSxfOO/24dEEFFaUlc1JPcjTF8GiK4WSKoeTEx1GGk2f2A8RiRjxmlMSMEjPiJUZJLEaJpbfFS4yYjWuT+Uu5k3Jwd9w5/Trljp/eN7b97DaQeR/pNpDeP/Z6bB9jr8nshLO2Z9454fWZzx//+iyTbPRJNk73n7cmMwenqS7BpYtnlgFmts3dWybdp0CfO20dvdz5xM8YTqZ44tMtXNdYM+c1jKacPcf62Nbec/qvvbsfgLKSGI21CY6fGqZ7ku6hmsoyli6oYOmCeSxbeOZxWSbwY2acHErSNzhC32CSvsHk6dcnB5P0jnt9Zl+SU0NJhsaFtW7RKmH3ufev4osb1szovQr0AvLm8X7ueHwrR3sH+fqnruWWNUtm9ftODiXZcehEOrwP9fCL9h76htIXaOuqyri2YREtTYu4rnERVy5bcPosfHBklI53Buk4McCR8Y/vDNBxYpAj7wzQN5j7hV4zqCqLU10Rp6oiTnVFafp5efqvPB6jLB6jPF5CWeZ5WUmM8tL0Y3rfufvNIJlyUiknmXJGx/0lz3qeIuVOcjT9OuUQs3RdZukz+JhBzAyb8Bgb18aAWAzSzwADI73fMv+chmUe4Uyzcdsy7ceOy7hmp1+PbZm4/+xjeu7WydtN8+9l0nfIbKurLmPpgnkzeq8CvcB0nRzirm/9nN0dvTz88au5/boVefvs0ZTzQtvbbNnTxbb2Hl4/2kvK0/9RX7akmusaF53+a6hJTBoKuTo5lDwr8B2oKk+HdvWE0K4sixOLKTxELtQFBbqZPQH8NnDM3a+aZP8C4O+ABiAO/Bd3/1a2oqIc6JAOw3v+tpWf7u3mSxvWcM/7V13Q5w0Mj/I/t73JN7cc4NDxfqrK46xtWMi1DenwvqZhIfMrSvNUvYgEZbpAj+fw/ieBvwaemmL/vcBud/8dM6sHfm1mT7u7xuhNo6o8zhOfvp4//sdf8pUfvk7XySG+tOHy8z6L7To5xFMvH+RvX22np3+Ea1Yu5Esb1vBbVywhXqJBTCJRkjXQ3X2zmTVN1wSotvT/u1cBxwHNoslBebyE//aJtdRVlvGNLQfoOjnMV2+/mtIcgnhf50m+ueUAz2w/zMhoig9evoSN6y+hpXHRBXWjiEjxyuUMPZu/Br4PHAGqgd9z90nXjTWzjcBGgIaGhjx8dfGLxYw//RdXUldVzteef4Oe/mG+/qlrSZSd+6/G3Wlt72HT5v38v7a3KS2J8fFrV3D3uotZVV8VQPUiUkjyEegfBnYAtwCrgOfNbIu7905s6O6bgE2Q7kPPw3eHgplx3282U1tVzn/43k4++Y2tfOvT17OosgxIX+j88a6j/M3m/ex48wQLE6Xc94FLufO9TdRVlQdcvYgUinwE+l3An3v66upeMzsArAF+lofPjpRP3tBATWUpf/QPO7j9sZf5mztaeHlf1+kLnY21Cb5865V8/LoVk57Bi0i05SMVDgG/CWwxsyXAZcD+PHxuJH3kqqU89Zky/vDbrXzwkX8GOH2h80NXXkSJhv6JyBSyBrqZfQe4Gagzs8PAnwClAO7+GPBl4Ekz20l6XsMX3L1r1iqOgBsvqeV/3PMent7azm1rl+tCp4jkRBOLRESKyHTj0DVQWUQkJBToIiIhoUAXEQkJBbqISEgo0EVEQkKBLiISEgp0EZGQUKCLiIREYBOLzKwTaJ/h2+sAzUadno7R9HR8stMxml5Qx6fR3esn2xFYoF8IM2udaqaUpOkYTU/HJzsdo+kV4vFRl4uISEgo0EVEQqJYA31T0AUUAR2j6en4ZKdjNL2COz5F2YcuIiLnKtYzdBERmaDoAt3MPmJmvzazvWb2xaDrKURmdtDMdprZDjOL/KLzZvaEmR0zs1+N21ZjZs+b2Z7M46IgawzaFMfoT83srczvaIeZfTTIGoNkZivN7EUzazOzXWZ2f2Z7Qf2OiirQzawE+O/ABuAK4PfN7IpgqypYH3D3awptWFVAngQ+MmHbF4EX3L0ZeCHzOsqe5NxjBPBfM7+ja9z9B3NcUyFJAg+6++XAjcC9mewpqN9RUQU68G5gr7vvd/dh4B+AWwOuSQqcu28Gjk/YfCvw7czzbwO3zWVNhWaKYyQZ7t7h7tszz/uANmA5BfY7KrZAXw68Oe714cw2OZsDPzazbWa2MehiCtQSd++A9H+swOKA6ylU/9bMXst0yUS6W2qMmTUBa4GtFNjvqNgCfbI7JWuYzrlucvdrSXdN3Wtm64MuSIrSo8Aq4BqgA/haoNUUADOrAp4BHnD33qDrmajYAv0wsHLc6xXAkYBqKVjufiTzeAz4LumuKjnb22a2FCDzeCzgegqOu7/t7qPungK+QcR/R2ZWSjrMn3b3ZzObC+p3VGyB/nOg2cwuNrMy4BPA9wOuqaCYWaWZVY89Bz4E/Gr6d0XS94E/yDz/A+B/B1hLQRoLqoyPEeHfkZkZ8DjQ5u6PjNtVUL+joptYlBk69RdACfCEu//nYCsqLGZ2CemzcoA48PdRP0Zm9h3gZtKr470N/AnwPeAfgQbgEPC77h7Zi4JTHKObSXe3OHAQuGesvzhqzOx9wBZgJ5DKbH6IdD96wfyOii7QRURkcsXW5SIiIlNQoIuIhIQCXUQkJBToIiIhoUAXEQkJBbqISEgo0EVEQkKBLiISEv8ff1PcLYW9jBUAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(array[:t,0],array[:t,1])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "05d10671",
   "metadata": {},
   "source": [
    "#### 1.2 Newton method"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "15791885",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "c9b47d2d",
   "metadata": {},
   "outputs": [],
   "source": [
    "def h_calXNew(x):\n",
    "    return x - (x ** 3 + x - 1) / (x ** 2 * 3 + 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "41bc5e79",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Finshed,the result is 0.6823278038280485\n"
     ]
    }
   ],
   "source": [
    "Xold = 10\n",
    "error = 1e-4\n",
    "i = 0\n",
    "maxIter = 200\n",
    "data = np.zeros((maxIter,4))\n",
    "\n",
    "while (i < maxIter):\n",
    "    Xnew = h_calXNew(Xold)\n",
    "    difference = abs(Xnew - Xold)\n",
    "    data[i,:] = [i+1 , Xnew, Xold,difference]\n",
    "    if difference < error:\n",
    "        print (\"Finshed,the result is\",Xnew)\n",
    "        break\n",
    "    Xold = Xnew\n",
    "    i += 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "55069a98",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1.00000000e+00, 6.64784053e+00, 1.00000000e+01, 3.35215947e+00],\n",
       "       [2.00000000e+00, 4.40620227e+00, 6.64784053e+00, 2.24163826e+00],\n",
       "       [3.00000000e+00, 2.90476491e+00, 4.40620227e+00, 1.50143737e+00],\n",
       "       [4.00000000e+00, 1.90091876e+00, 2.90476491e+00, 1.00384615e+00],\n",
       "       [5.00000000e+00, 1.24470583e+00, 1.90091876e+00, 6.56212932e-01],\n",
       "       [6.00000000e+00, 8.59938409e-01, 1.24470583e+00, 3.84767416e-01],\n",
       "       [7.00000000e+00, 7.05872694e-01, 8.59938409e-01, 1.54065715e-01],\n",
       "       [8.00000000e+00, 6.82793127e-01, 7.05872694e-01, 2.30795670e-02],\n",
       "       [9.00000000e+00, 6.82327989e-01, 6.82793127e-01, 4.65138545e-04]])"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[:i,:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "67dbab65",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'XNew')"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAEGCAYAAABvtY4XAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAghklEQVR4nO3deXhV5b328e9vZyAkzCEChlFkkEnBFBUUkUkr1FpPL6vWzi0WtUXt217HHk8n256et63V1jrgWKvia62eo2ipUEUcwQAyK8iMDAnzGMjwe//YKxAwQAJZWTsr9+e69pWd7J21bhHu/eTJ2s9j7o6IiMRPIuoAIiISDhW8iEhMqeBFRGJKBS8iElMqeBGRmEqPOkBVbdu29a5du0YdQ0SkwZgzZ84Wd8+r7rGUKviuXbtSWFgYdQwRkQbDzNYc6zFN0YiIxJQKXkQkplTwIiIxpYIXEYkpFbyISEyp4EVEYkoFLyISUw2+4EtKy5k0cwWzV22LOoqISEpp8AUP8Ohbq/m/Uz9Ea9uLiBzW4As+KyONm0ecSeGa7cxcviXqOCIiKaPBFzzA1QWd6Ni6KXe9+pFG8SIigVgUfGZ6gu+P6MH89Tv519KiqOOIiKSEWBQ8wFWD8umam81d05ZRUaFRvIhIbAo+PS3BxFE9WLJxF1MXb4o6johI5GJT8ABXnJ3Pmac14w/TllGuUbyINHKxKvi0hHHLqB4sL9rDlAUboo4jIhKpWBU8wOX9OtC7fXPunr6csvKKqOOIiEQmdgWfSBi3ju7Jqi17eWHeJ1HHERGJTOwKHmBMn3b0z2/JH19bTqlG8SLSSMWy4M2M28b0ZN22/fytcH3UcUREIhHLggcY3jOPQZ1b8afXllNSWh51HBGRehfbgjczfjCmFxt3lvDM7LVRxxERqXexLXiAId1zOa9bG/48YwX7D2oULyKNS6wLvnIUX7z7AE++tybqOCIi9SrWBQ8wuFsbLurRlvvfWMHeA2VRxxERqTexL3iA20b3ZNvegzz+zuqoo4iI1JtGUfADO7dmZO/TmDRzJbtKSqOOIyJSL0IteDNrZWbPmdmHZrbUzC4I83zHc+vonuzcX8qjb62KKoKISL0KewR/DzDV3XsDZwNLQz7fMfXLb8llfdvzyJur2LHvYFQxRETqTWgFb2YtgGHAIwDuftDdd4R1vpq4dXRP9hwsY9LMlVHGEBGpF2GO4M8AioHHzGyemT1sZjlHP8nMxptZoZkVFhcXhxgHerVvzrgBp/P4O6vZuudAqOcSEYlamAWfDgwC7nf3gcBe4N+PfpK7T3L3AncvyMvLCzFO0i2jelBSWs4Db6wI/VwiIlEKs+DXA+vdfVbw+XMkCz9S3fOaceXAfJ54dw1Fu0qijiMiEprQCt7dNwHrzKxX8KWRwJKwzlcbE0f2oKzCuW+GRvEiEl9hX0XzPeApM1sAnAP8OuTz1UiX3ByuLujI07PWsmHH/qjjiIiEItSCd/cPgvn1Ae5+pbtvD/N8tXHziB4A3Pv6xxEnEREJR6N4J2t18ls15ZrBnXj2/XWs3bov6jgiInWu0RY8wE2XnElawvjja8ujjiIiUucadcG3a5HF9ed34fm561lZvCfqOCIidapRFzzAhOHdaZKexj3/0iheROKl0Rd822ZN+NqQrrw4fwPLNu+OOo6ISJ1p9AUPcMOwM8jJTOfu6cuijiIiUmdU8EDrnEy+eWE3Xlm4icUbdkYdR0SkTqjgA9+6sBststL5wzTNxYtIPKjgAy2bZjB+2BlMX7qZD9btiDqOiMgpU8FX8fWh3WidncFd0zQXLyINnwq+imZN0vnuxd2ZuayYwtXboo4jInJKVPBH+eoFXWnbrAm/f1WjeBFp2FTwR2mamcaNw7vz7sqtvLNiS9RxREROmgq+Gted15n2LbK469VluHvUcURETooKvhpZGWncPOJMCtdsZ+ZyjeJFpGFSwR/D1QWd6Ni6Kb9/9SON4kWkQVLBH0NmeoLvj+jBgvU7mb60KOo4IiK1poI/jqsG5dM1N5u7pi2jokKjeBFpWFTwx5GelmDiqB4s3biLqYs3RR1HRKRWVPAncMXZ+Zx5WjP+MG0Z5RrFi0gDooI/gbSEccuoHiwv2sOUBRuijiMiUmMq+Bq4vF8Herdvzt3Tl1NWXhF1HBGRGlHB10AiYdw6uiertuzlhXmfRB1HRKRGVPA1NKZPO/rnt+Sefy3nYJlG8SKS+kIteDNbbWYLzewDMysM81xhMzNuG9OT9dv387c566KOIyJyQvUxgr/E3c9x94J6OFeohvfMY1DnVtz72seUlJZHHUdE5Lg0RVMLZsYPxvRi484Snpm9Nuo4IiLHFXbBO/Cqmc0xs/HVPcHMxptZoZkVFhcXhxzn1A3pnst53drw5xkr2H9Qo3gRSV1hF/xQdx8EfBa4ycyGHf0Ed5/k7gXuXpCXlxdynFNXOYov3n2AJ99bE3UcEZFjCrXg3X1D8LEIeAEYHOb56svgbm24qEdb7n9jBXsPlEUdR0SkWqEVvJnlmFnzyvvAGGBRWOerb7eN7sm2vQd5/J3VUUcREalWmCP4dsBbZjYfmA287O5TQzxfvRrYuTUje5/GpJkr2VVSGnUcEZFPCa3g3X2lu58d3Pq6+6/COldUbh3dk537S3nkzVVRRxER+RRdJnkK+uW35LK+7Xn0rVXs2Hcw6jgiIkdQwZ+iW0f3ZM/BMibNXBl1FBGRI6jgT1Gv9s0ZN+B0Hn9nNVv3HIg6jojIISr4OnDLqB6UlJbzwBsroo4iInKICr4OdM9rxpUD83ni3TUU7SqJOo6ICKCCrzMTR/agrML58+sfRx1FRARQwdeZLrk5XF3Qkcmz1/HJjv1RxxERUcHXpZtH9ADg3tc0iheR6Kng61B+q6ZcM7gTfytcx9qt+6KOIyKNnAq+jt10yZmkJYw/vrY86igi0sip4OtYuxZZXH9+F56fu56VxXuijiMijZgKPgQThnenSXoa9/xLo3gRiY4KPgRtmzXha0O68uL8DSzbvDvqOCLSSKngQ3LDsDPIyUznjhcWUVZeEXUcEWmEVPAhaZ2TyS8+35fZq7fxu1eXRR1HRBohFXyIrhrUkevO68wDb6xg+pLNUccRkUZGBR+yn4zrQ7/8Ftz27Aes26Zr40Wk/qjgQ5aVkcZ9152LAxOemkNJaXnUkUSkkVDB14POudncdfU5LPpkF3dOWRJ1HBFpJFTw9WR0n3bccPEZPDVrLf8z75Oo44hII6CCr0c/HNOLwV3bcPvzC1mu6+NFJGQq+HqUnpbgT9cNJKdJGt99cg57D5RFHUlEYkwFX8/atcjij9cOZNWWvdz+/ELcPepIIhJTKvgIDOnelh+M6cWL8zfw5Ky1UccRkZgKveDNLM3M5pnZlLDP1ZBMuLg7l/TK486XljB/3Y6o44hIDNXHCH4isLQeztOgJBLGXVefQ17zJtz41Fx27DsYdSQRiZkTFryZnXGyBzezjsBY4OGTPUactc7J5M9fHkTR7hJue3Y+FRWajxeRulOTEfzjZrbCzJ4xsxvNrH8tjn838CPgmMspmtl4Mys0s8Li4uJaHDoezunUiv8c14fXPizigZkroo4jIjFywoJ392HAWcCfgNbAy2a27UTfZ2bjgCJ3n3OC409y9wJ3L8jLy6th7Hj5yvld+NzZp/O7f37Euyu2Rh1HRGKiJlM0FwI/AP6D5HTLFOCmGhx7KHCFma0GngFGmNmTJx81vsyM/7qqP13b5vC9yfMo2lUSdSQRiYGaTNG8AVwJTAKGu/uN7j75RN/k7re7e0d37wpcA7zm7tefStg4a9YknQeuP5e9B8q4efI8bRIiIqesJgWfC/wCuACYambTzezOcGM1Tj3bNedXX+jH7FXaJERETl36iZ7g7jvMbCXQCegIDAEyanMSd58BzDiJfI3OVYM6UrhmOw+8sYKCLq0Z1add1JFEpIGqyRz8CuD3QBvgAaCXu18cdrDGTJuEiEhdqMkUTQ93v9zdf+3ub7q73pETMm0SIiJ1oSYFf6aZ/cvMFgGY2QAzuyPkXI2eNgkRkVNVk4J/CLgdKAVw9wUkr4qRkGmTEBE5FTUp+Gx3n33U17SQeT3RJiEicrJqUvBbzKw74ABm9kVgY6ip5BBtEiIiJ6smBX8T8CDQ28w+AW4BJoQZSo6kTUJE5GTUZC2ale4+CsgDerv7he6+OvRkcgRtEiIitXXMNzqZ2VeP8XUA3P2JkDLJMUy4uDuFq7dx50tLGJDfkrM7tYo6koiksOON4D9TzW0wcCfwaPjR5GjaJEREauOYBe/u36u8Ad8HZgEXA+8Bg+opnxxFm4SISE0ddw7ezNLN7NvAEmAU8EV3/1JwLbxERJuEiEhNHLPgzewmksV+LnCZu3/d3T+qt2RyXNokRERO5Hgj+D8BLYALgZfMbEFwW2hmGsFHTJuEiMiJHG+54OHAmmM81rnuo0htVW4S8vl73+bmyfN4+tvnkZ5Wk7c2iEhjcLw2eBz4EvCJu69x9zVACfAr4K56yCY1UHWTkN9P0yYhInLY8Qr+XKA7MM/MRpjZRGA28C5wXn2Ek5q5alBHrjuvM/fPWMH0JZujjiMiKeJ4l0lud/cbgIeB6cAPgaHu/md314ahKUabhIjI0Y53FU0rM3sQ+AZwGfAc8A8zG1Ff4aTmtEmIiBzteFM0c4HlQIG7v+rutwBfAX5pZpPrI5zUjjYJEZGqjlfww9z9d+5+aH1ad//A3YcAr4UfTU6GNgkRkUrHm4Nff5zHHgonjtQFbRIiIlCz9eClgdEmISICKvjY0iYhIhJawZtZlpnNNrP5ZrbYzH4e1rmketokRKRxC3MEfwAY4e5nA+cAl5nZ+SGeT6ox4eLuXNIrjztfWsL8dTuijiMi9Si0gvekPcGnGcFN8wT1TJuEiDReoc7Bm1mamX0AFAHT3H1WNc8Zb2aFZlZYXFwcZpxGS5uEiDROoRa8u5e7+zlAR2CwmfWr5jmT3L3A3Qvy8vLCjNOoaZMQkcanXq6icfcdwAySSx5IRKpuEvL2x1uijiMiIQvzKpo8M2sV3G9Kcsu/D8M6n5xY5SYh3fOa8c3H32fqoo1RRxKREIU5gu8AvB7s/vQ+yTn4KSGeT2qgWZN0nhl/Pn1Ob8GEp+byyFuroo4kIiE53o5OpyTYmHtgWMeXk5fbrAmTv3M+E5+Zx51TlrB++z7uGNuHtIRFHU1E6pDeydpIZWWkcd+Xz+WbQ7vx2NurufGpOew/qCWGReJEBd+IpSWMn3yuDz8Z14dXl2zm2ofeY+ueA1HHEpE6ooIXvnlhN+7/8rks3biLq+5/h1Vb9kYdSUTqgApeALisX3smjz+f3SVlXHXf28xZsy3qSCJyilTwcsigzq15fsIQWjbN4NqHZvGPhbqMUqQhU8HLEbq2zeH5G4fS7/QW3Pj0XB5+c6WWGhZpoFTw8iltcjJ5+jvnc1nf9vzy5aX8/KUllGv9GpEGRwUv1crKSOPP1w3i2xd24/F3VjPhSV1GKdLQqODlmBIJ445xffjp5/owbWnyMsotuoxSpMFQwcsJfWNoNx64PriM8r53WFm858TfJCKRU8FLjVzaN3kZ5Z4DZVx1/zsUrtZllCKpTgUvNTaoc2teuHEIrbMzue7hWby8QJdRiqQyFbzUSpfcHP4+YQj981ty09NzeWimLqMUSVUqeKm1NjmZPPXt87i8f3t+9cpSfvbiYl1GKZKCVPByUrIy0rj32kF856Ju/OXdNXxXl1GKpBwVvJy0RML4j7F9+Nnn+jB96Wau0WWUIilFBS+n7OtDu/Hg9efy0aZdfOG+t1mhyyhFUoIKXurEmL7teWb8Bew7UM6/3f8O7+sySpHIqeClzpzTqRUv3DiUNtmZfPnhWUxZsCHqSCKNmgpe6lTn3Gz+PmEIZ3dsyc1Pz2PSzBW6jFIkIip4qXOtczL567fOY+yADvz6lQ/5qS6jFIlEetQBJJ6yMtL40zUDyW/VlEkzV7Jhx37+eO1AsjP1V06kvmgEL6FJJIwfX34Wv/h8X177sIhrJr1H8W5dRilSX1TwErqvXtCVB79SwLLNu/nCfW/zcZEuoxSpD6EVvJl1MrPXzWypmS02s4lhnUtS3+g+7fh/4y+gpDR5GeXsVbqMUiRsYY7gy4AfuPtZwPnATWbWJ8TzSYo7O7iMMrdZJtc/PIuX5usySpEwhVbw7r7R3ecG93cDS4H8sM4nDUOnNtk8P2EIZ3dqyfcmz+OBN3QZpUhY6mUO3sy6AgOBWdU8Nt7MCs2ssLi4uD7iSMRaZScvoxw3oAO/+ceH/Of/LqKsvCLqWCKxE3rBm1kz4O/ALe6+6+jH3X2Suxe4e0FeXl7YcSRFZGWk8cdrBnLDxWfw5HtrueGvc9h3sCzqWCKxEmrBm1kGyXJ/yt2fD/Nc0vAkEsbtnz2LO6/sx+sfFfGlB9+jaHdJ1LFEYiPMq2gMeARY6u53hXUeafi+cn4XHvpqAR8X7WH0XTN57O1VlGrKRuSUhTmCHwp8BRhhZh8Et8tDPJ80YCPPaseLNw9lQMeW/PylJVx690xe/7Ao6lgiDZql0hUMBQUFXlhYGHUMiZC789qHRfzy5aWs2rKXi3vmccfYs+jRrnnU0URSkpnNcfeC6h7TO1klpZgZI89qxz9vGcYdY89i7trtXHbPm/z0fxexfe/BqOOJNCgqeElJmekJvn3RGbzxw0u4bnBn/vreGob/bobm50VqQQUvKa1NTiZ3XtmPf0wcRv98zc+L1IYKXhqEXu2b89dvDeaRrxXgDt94/H2+9uhslm/eHXU0kZSlgpcGQ/PzIrWjgpcGp3J+fsb/Gc61gztpfl7kGFTw0mDlNmvCL6/sf8T8/GV3z+T1jzQ/LwIqeImByvn5h79aQIXDNx7T/LwIqOAlJsyMUX0+PT//sxcXa35eGi0VvMTK0fPzT7y7WvPz0mip4CWWND8vooKXmDvW/PzHRZqfl/hTwUvsVTc/f+ndyfn5Hfs0Py/xpYKXRqPq/Pw1n0nOz1/82xk8rvl5iSkVvDQ6uc2a8Ksv9OeViRfRL78FP9P8vMSUCl4ard7tW/Dkt847Yn7+649pfl7iQwUvjdrR8/Nz1mh+XuJDBS+C5uclnlTwIlUca37+xfkb2HewLOp4IrWiPVlFjsHdmb60iF+/ktwfNisjwcje7Rg7oAOX9DqNpplpUUcUOe6erOn1HUakoTAzRvdpx4jep/H+6m28vGAj/1i0kZcXbqRpRhojzjqNcf07MFxlLylKI3iRWiivcGat2sorCzfyj4Wb2Lr3INmZaYw8qx1j+7dneK/TyMpQ2Uv9Od4IXgUvcpLKyiuYvWobUxZuZOqiTWzbe5CcyrIf0IGLe+ap7CV0KniRkJWVVzBr1TamLNjI1EUb2b6vlJzMNEb1acfY/h0YprKXkERS8Gb2KDAOKHL3fjX5HhW8xEFZeQXvrkxO40xdtInt+0pp1iSd0X3acXn/Dgzr2ZYm6Sp7qRtRFfwwYA/whApeGqvS8greXbGVlxdsZOriTezcX0rzoOzHDujAhT1U9nJqIpuiMbOuwBQVvEiy7N9ZsZWXF2zgn4s3J8s+K1n24wZ04MIz88hM11tTpHZSuuDNbDwwHqBz587nrlmzJrQ8IqniYFkFb6/YwssLNvLPxZvYXVJGi6x0xvRtz9j+HRh6ZluVvdRIShd8VRrBS2N0sKyCtz/ewpQFG3l1yeGyv7Rve8YOSJZ9RprKXqqnNzqJpLDM9ASX9D6NS3qfxoGyfry1fAsvB7+g/duc9bRsmsGlfdsxdsDpDOmeq7KXGlPBi6SQJunJ6+hHntWOA2XlvLksWfavLNzEs4XraZWdwWV923N5/w5coLKXEwjzKprJwHCgLbAZ+Km7P3K879EUjUj1SkrLeXP5Fl5esIFpSzaz92A5rbMzuKB7Lp3b5NAlN5vObZK3Di2zSFfxNxp6o5NIjJSUlvPGsmJeWbiRBet3sn77PkrLD/87Tk8Y+a2bHir8Q7fgRaB5VkaE6aWuaQ5eJEayMtK4tG97Lu3bHkiuj7NpVwlrtu5l3bZ9rN22jzVb97Fu2z5eWZh8V21VbXIy6RSUfpfgY6c22XTJzaZdiyzSEhbFf5aEQAUv0sClJYz8Vk3Jb9UUun/68Z37Sw8V/6Hb1n3MX7eDVxZupLzi8Og/My1Bx9ZND432q47+O7XOJqeJKqMh0f8tkZhr2TSDlvkt6Zff8lOPlZVXsGFHyaHiX7Pt8E8Bc9ZsZ3fJkZuctG3WhM5tgumf3JxDLwBdcrPJa9aEhEb/KUUFL9KIpaclkqP13OxPPebu7NxfypqtR478127bx/urt/Pi/A1UGfzTJD1xqPDbNmtCepqRkZYgPWFkpCfISBjpaYnk1xOJQ49npBnpVT4//PzKrx1+PDMtkTxGInhuNccy04tMJRW8iFTLzGiVnUmr7EzO7tTqU48fLKvgkx37g+Lfe/ingK37WLRhJ2XlzsHyCsrKnbKKiiN+ERymtIQd+QKQdvjFJS1h1Kj+a/gaUdOXkhO96LTJzuTZ715Qw6PVnApeRE5KZnqCbm1z6NY2B8g74fPdnfIKp6zCKS1PFn5ZeQWlFcHHyheCMqe0InhhOOrx0vKKQy8WVV84ko8fPkZZuR8+XpVz1eQ1pqZXFtb45aoGT2yeFU4Vq+BFpF6YGelpRnoaWhu/nujdECIiMaWCFxGJKRW8iEhMqeBFRGJKBS8iElMqeBGRmFLBi4jElApeRCSmUmo9eDMrBk521+22wJY6jFNXlKt2lKt2lKt24piri7tX+1bilCr4U2Fmhcda9D5KylU7ylU7ylU7jS2XpmhERGJKBS8iElNxKvhJUQc4BuWqHeWqHeWqnUaVKzZz8CIicqQ4jeBFRKQKFbyISEw1+II3s0fNrMjMFkWdpZKZdTKz181sqZktNrOJUWcCMLMsM5ttZvODXD+POlNVZpZmZvPMbErUWaoys9VmttDMPjCzwqjzVDKzVmb2nJl9GPxdq/s932qfqVfw51R522Vmt0SdC8DMbg3+3i8ys8lmlhV1JgAzmxhkWlzXf1YNfg7ezIYBe4An3L1f1HkAzKwD0MHd55pZc2AOcKW7L4k4lwE57r7HzDKAt4CJ7v5elLkqmdltQAHQwt3HRZ2nkpmtBgrcPaXeIGNmfwHedPeHzSwTyHb3HRHHOsTM0oBPgPPc/WTfwFhXWfJJ/n3v4+77zexZ4BV3fzziXP2AZ4DBwEFgKjDB3ZfXxfEb/Aje3WcC26LOUZW7b3T3ucH93cBSID/aVOBJe4JPM4JbSrzCm1lHYCzwcNRZGgIzawEMAx4BcPeDqVTugZHAiqjLvYp0oKmZpQPZwIaI8wCcBbzn7vvcvQx4A/hCXR28wRd8qjOzrsBAYFbEUYBD0yAfAEXANHdPiVzA3cCPgIqIc1THgVfNbI6ZjY86TOAMoBh4LJjWetjMcqIOdZRrgMlRhwBw90+A3wFrgY3ATnd/NdpUACwChplZrpllA5cDnerq4Cr4EJlZM+DvwC3uvivqPADuXu7u5wAdgcHBj4iRMrNxQJG7z4k6yzEMdfdBwGeBm4JpwailA4OA+919ILAX+PdoIx0WTBldAfwt6iwAZtYa+DzQDTgdyDGz66NNBe6+FPhvYBrJ6Zn5QFldHV8FH5JgjvvvwFPu/nzUeY4W/Dg/A7gs2iQADAWuCOa6nwFGmNmT0UY6zN03BB+LgBdIzpdGbT2wvspPYM+RLPxU8VlgrrtvjjpIYBSwyt2L3b0UeB4YEnEmANz9EXcf5O7DSE4318n8O6jgQxH8MvMRYKm73xV1nkpmlmdmrYL7TUn+pf8w0lCAu9/u7h3dvSvJH+tfc/fIR1cAZpYT/KKcYApkDMkfqyPl7puAdWbWK/jSSCDSX+If5VpSZHomsBY438yyg3+fI0n+bixyZnZa8LEzcBV1+OeWXlcHioqZTQaGA23NbD3wU3d/JNpUDAW+AiwM5rsBfuzur0QXCYAOwF+CqxsSwLPunlKXJKagdsALyU4gHXja3adGG+mQ7wFPBdMhK4FvRJwHgGAueTRwQ9RZKrn7LDN7DphLcgpkHqmzbMHfzSwXKAVucvftdXXgBn+ZpIiIVE9TNCIiMaWCFxGJKRW8iEhMqeBFRGJKBS8iElMqeImcmb0TfOxqZtfV8bF/XN25UpWZfd3M7o06h8SDCl4i5+6V7yjsCtSq4INr+o/niIKvcq5YqsGfhzQiKniJnJlVrnD5G+CiYB3xW4OF0X5rZu+b2QIzuyF4/vBgvf2ngYXB1/4nWAxsceWCYGb2G5KrB35gZk9VPZcl/TZYh3uhmX2pyrFnVFln/angnY9HZ55hZv9tyfX1l5nZRcHXjxiBm9kUMxteee7ge+aY2XQzGxwcZ6WZXVHl8J3MbKqZfWRmP61yrOuD831gZg9Wlnlw3F+Y2Swg8jXhJYW4u266RXoD9gQfhwNTqnx9PHBHcL8JUEhysajhJBfX6lbluW2Cj01JLiWQW/XY1Zzr30gu8JRG8t2qa0m+03c4sJPkYmwJ4F3gwmoyzwB+H9y/HJge3P86cG+V500Bhgf3HfhscP8F4FWSSzafDXxQ5fs3ArlV/lsKSC4r+xKQETzvPuCrVY57ddT/H3VLvVuDX6pAYm0MMMDMvhh83hLoQXJjhNnuvqrKc79vZpXraHcKnrf1OMe+EJjs7uXAZjN7A/gMsCs49nqAYKmJriQ3izha5SJyc4LnnEjlhg6Q/MnjgLuXmtnCo75/mrtvDc7/fJC1DDgXeD/4gaIpySWfAcpJLmwncgQVvKQyA77n7v884ovJKY+9R30+CrjA3feZ2QzgRNuxfWrapYoDVe6Xc+x/JweqeU4ZR059Vs1R6u6Va4NUVH6/u1cEm1BUOnr9EA/y/sXdb68mR0nwQiVyBM3BSyrZDTSv8vk/gQnB0suYWc9jbGrREtgelHtv4Pwqj5VWfv9RZgJfCub580jujjS7Dv4bVgPnmFnCzDpxcksLjzazNsGKn1cCbwP/Ar5YZeXBNmbWpQ7ySoxpBC+pZAFQZmbzgceBe0hOXcwNftFZTLLwjjYV+K6ZLQA+AqruMTsJWGBmc939y1W+/gLJX0jOJzlC/pG7bwpeIE7F28AqklMwi0iuXlhbbwF/Bc4kuXplIYCZ3UFyZ6kEwcqDQKpshycpSKtJiojElKZoRERiSgUvIhJTKngRkZhSwYuIxJQKXkQkplTwIiIxpYIXEYmp/w/WB4bbTIaS4AAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(data[:i,0],data[:i,1])\n",
    "plt.xlabel(\"iteration number\")\n",
    "plt.ylabel(\"XNew\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b1e557c7",
   "metadata": {},
   "source": [
    "#### 1.4 Secant"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "762fda20",
   "metadata": {},
   "outputs": [],
   "source": [
    "def cal(y,x):\n",
    "    return y - (y ** 3 + y - 1) * (y - x) / (y ** 3 + y - 1 - x ** 3 - x + 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "1c3dfa92",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Finshed,the result is 0.6823278038280184\n"
     ]
    }
   ],
   "source": [
    "data3=np.zeros((50,4))\n",
    "i=0\n",
    "data3[0,0]=0\n",
    "data3[0,1]=100\n",
    "while True:\n",
    "    data3[i,2]=cal(data3[i,1],data3[i,0])\n",
    "    d=abs(data3[i,0]-data3[i,1])\n",
    "    data3[i+1,0]=data3[i,1]\n",
    "    data3[i+1,1]=data3[i,2]\n",
    "    d=abs(data3[i,0]-data3[i,1])\n",
    "    if d<0.000000001:\n",
    "        break\n",
    "    data3[i,3]=i+1\n",
    "    i=i+1\n",
    "print(\"Finshed,the result is\",data3[i,1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "7b190f23",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Xnew')"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(data3[:i,3],data3[:i,1])\n",
    "plt.xlabel(\"i\",fontsize=20)\n",
    "plt.ylabel(\"Xnew\",fontsize=20)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "20ea3ff9",
   "metadata": {},
   "source": [
    "### Equation systems"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f2059cd9",
   "metadata": {},
   "source": [
    "## 方程组:\n",
    "$$\n",
    "\\begin{cases}\n",
    "8 * X_1 &+& X_2 &+& 6 * X_3 &=& 28\\\\\n",
    "3 * X_1 &+& 2 * X_2 &+& 7 * X_3 &=& 34\\\\\n",
    "4 * X_1 &+& 2 * X_2 &+& 2 * X_3 &=& 28\n",
    "\\end{cases}\n",
    "$$\n",
    "\n",
    "## 矩阵A:\n",
    "$$\n",
    "\\left[\n",
    "\\begin{matrix}\n",
    "8 & 1 & 6\\\\  \n",
    "3 & 2 & 7\\\\\n",
    "4 & 2 & 2\n",
    "\\end{matrix}\n",
    "\\right]\n",
    "$$\n",
    "\n",
    "## 向量b:\n",
    "$$\n",
    "\\left[\n",
    "\\begin{matrix}\n",
    "28 & 34 & 28\n",
    "\\end{matrix}\n",
    "\\right]\n",
    "$$\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "057696ff",
   "metadata": {},
   "source": [
    "#### 2.1Gauss elimination"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "41edf459",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "np.set_printoptions(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "dda53ad5",
   "metadata": {},
   "outputs": [],
   "source": [
    "n = 3\n",
    "# A = np.random.randn(n,n)\n",
    "# b = np.random.randn(n,1)\n",
    "A = np.array([\n",
    "    [8,1,6],\n",
    "    [3,2,7],\n",
    "    [4,2,2]])\n",
    "b = np.array([\n",
    "    [2],[5],[4]\n",
    "])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "aa30a49b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[8, 1, 6],\n",
       "       [3, 2, 7],\n",
       "       [4, 2, 2]])"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d12f9092",
   "metadata": {},
   "source": [
    "#### Step 1 :elimination"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ae4de3e9",
   "metadata": {},
   "source": [
    "#### Old version"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "21910a42",
   "metadata": {},
   "outputs": [],
   "source": [
    "A1 = A.copy()\n",
    "b1 = b[:,0].copy()\n",
    "for i in range(0,n+1):\n",
    "    for j in range(i+1,n):\n",
    "        C = - A[j,i] / A[i,i]\n",
    "        b1[j] = b[j] + C * b[i]\n",
    "        for k in range(1,n):\n",
    "            A1[j,k] = A[j,k] + C * A[i,k]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "e2dc3a35",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 8,  1,  6],\n",
       "       [ 3,  1,  4],\n",
       "       [ 4,  0, -5]])"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "eef483a8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2, 5, 4])"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "b[:,0]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2305b9f2",
   "metadata": {},
   "source": [
    "#### New version"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "4b93bf51",
   "metadata": {},
   "outputs": [],
   "source": [
    "A1 = A.copy()\n",
    "b1 = b[:,0].copy()\n",
    "for i in range(0,n+1):\n",
    "    for j in range(i+1,n):\n",
    "        C = - A1[j,i] / A1[i,i]\n",
    "        b1[j] = b1[j] + C * b1[i]\n",
    "        for k in range(1,n):\n",
    "            A1[j,k] = A1[j,k] + C * A1[i,k]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "70989c1c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 8,  1,  6],\n",
       "       [ 3,  1,  4],\n",
       "       [ 4,  0, -5]])"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "255f6bdc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2, 5, 4])"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "b[:,0]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "47befdac",
   "metadata": {},
   "source": [
    "### Question: what are the differences of old and new version?"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7efe521a",
   "metadata": {},
   "source": [
    "### 新版比旧版优化之处在于直接使用A1的地址进行迭代计算和赋值变换"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "87b34d1b",
   "metadata": {},
   "source": [
    "#### Step 2 :calculation x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "bcf21ebe",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[2, 3, 4, 5, 6, 7, 8]"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "list(range(2,9))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "6f1c1f9d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[2, 1, 0]"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "list(range(n-1,-1,-1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "a539249f",
   "metadata": {},
   "outputs": [],
   "source": [
    "x = np.zeros(n)\n",
    "for i in range(n-1,-1,-1):\n",
    "    sumX = 0\n",
    "    for k in range(i + 1,n):\n",
    "        sumX = sumX + A1[i,k] * x[k]\n",
    "    x[i] = (b1[i] - sumX) / A1[i,i]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "323d4867",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-0.3,  3.2,  0.2])"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6e2e88d5",
   "metadata": {},
   "source": [
    "#### Step 3 :verification"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "9573fd4f",
   "metadata": {},
   "outputs": [],
   "source": [
    "inA = np.linalg.inv(A)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "5bd03ce8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.143, -0.143,  0.071],\n",
       "       [-0.314,  0.114,  0.543],\n",
       "       [ 0.029,  0.171, -0.186]])"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "inA"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "0b113c0b",
   "metadata": {},
   "outputs": [],
   "source": [
    "x2 = inA @ b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "fb764a92",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-0.143,  2.114,  0.171])"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x2[:, 0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "19b90e54",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-0.3,  3.2,  0.2])"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a33046ee",
   "metadata": {},
   "source": [
    "#### Step 4 :Experience"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "caa83bec",
   "metadata": {},
   "source": [
    "#### 高斯消元法使用时要注意适用范围，在课上取随机矩阵时多数情况会导致出错，即遇到奇异矩阵\n",
    "#### "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
